Inner join dan klausa WHERE dalam Oracle
Dalam pangkalan data Oracle, perbezaan antara menggunakan inner join (INNER JOIN) dan klausa WHERE untuk menyertai dua jadual adalah masalah biasa. Walaupun mungkin terdapat perbezaan halus antara kedua-duanya dalam situasi tertentu, perbezaan prestasi keseluruhan biasanya boleh diabaikan.
Contoh di bawah:
Select * from Table1 T1 Inner Join Table2 T2 On T1.ID = T2.ID
dan
Select * from Table1 T1, Table2 T2 Where T1.ID = T2.ID
Kedua-dua pertanyaan melakukan operasi yang sama: sertai baris dalam Jadual1 dengan baris dalam Jadual2 berdasarkan kesamaan lajur ID. Untuk memahami perkara ini dengan lebih baik, mari buat dua contoh jadual:
CREATE TABLE table1 ( id INT, name VARCHAR(20) ); CREATE TABLE table2 ( id INT, name VARCHAR(20) );
Jalankan pelan pelaksanaan untuk pertanyaan menggunakan gabungan dalaman:
-- 使用内连接 EXPLAIN PLAN FOR SELECT * FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.id; SELECT * FROM TABLE (DBMS_XPLAN.DISPLAY);
...mendapat output berikut:
<code>-- 0 select statement -- 1 hash join (access("T1"."ID"="T2"."ID")) -- 2 table access full table1 -- 3 table access full table2</code>
Begitu juga, pelan pelaksanaan untuk pertanyaan menggunakan klausa WHERE:
-- 使用 WHERE 子句 EXPLAIN PLAN FOR SELECT * FROM table1 t1, table2 t2 WHERE t1.id = t2.id; SELECT * FROM TABLE (DBMS_XPLAN.DISPLAY);
...mengembalikan output berikut:
<code>-- 0 select statement -- 1 hash join (access("T1"."ID"="T2"."ID")) -- 2 table access full table1 -- 3 table access full table2</code>
Seperti yang anda lihat, kedua-dua pertanyaan menggunakan cantuman cincang untuk melaksanakan operasi cantum, dan tiada perbezaan yang ketara dalam rancangan pelaksanaan.
Oleh itu, pilihan antara mencantumkan jadual menggunakan cantuman dalam atau klausa WHERE dalam Oracle terutamanya bergantung pada keutamaan peribadi atau keperluan khusus skema pangkalan data atau pertanyaan yang digunakan.
Atas ialah kandungan terperinci Inner Join vs. WHERE Klausa dalam Oracle: Apakah Perbezaan Prestasi Sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!