Perbandingan prestasi cantuman dalaman dan klausa WHERE dalam pangkalan data Oracle
Dalam Pangkalan Data Oracle, inner join dan klausa WHERE menunjukkan tahap konsistensi prestasi yang tinggi, dan pelan pelaksanaan yang dihasilkan oleh kedua-duanya adalah hampir sama.
Mari kita lihat contoh, dengan mengandaikan kita mempunyai dua jadual:
<code class="language-sql">CREATE TABLE table1 ( id INT, name VARCHAR(20) ); CREATE TABLE table2 ( id INT, name VARCHAR(20) );</code>
Pelan pelaksanaan pertanyaan menggunakan cantuman dalaman adalah seperti berikut:
<code class="language-sql">-- 使用内连接 EXPLAIN PLAN FOR SELECT * FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.id; SELECT * FROM TABLE (DBMS_XPLAN.DISPLAY); -- 0 select statement -- 1 hash join (access("T1"."ID"="T2"."ID")) -- 2 table access full table1 -- 3 table access full table2</code>
Pelan pelaksanaan pertanyaan yang setara menggunakan klausa WHERE adalah serupa:
<code class="language-sql">-- 使用 WHERE 子句 EXPLAIN PLAN FOR SELECT * FROM table1 t1, table2 t2 WHERE t1.id = t2.id; SELECT * FROM TABLE (DBMS_XPLAN.DISPLAY); -- 0 select statement -- 1 hash join (access("T1"."ID"="T2"."ID")) -- 2 table access full table1 -- 3 table access full table2</code>
Seperti yang dapat dilihat daripada pelan pelaksanaan, kedua-dua kaedah menggunakan cantuman cincang dan melakukan imbasan jadual penuh pada jadual table1 dan table2. Oleh itu, ciri prestasi mereka hampir sama.
Atas ialah kandungan terperinci Inner Join vs. WHERE Klausa dalam Oracle: Adakah Mereka Menghasilkan Prestasi Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!