„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Innerer Join vs. Wo Klausel in Oracle: Was ist der wahre Leistungsunterschied?

Innerer Join vs. Wo Klausel in Oracle: Was ist der wahre Leistungsunterschied?

Gepostet am 2025-02-11
Durchsuche:956

Inner Join vs. WHERE Clause in Oracle: What's the Real Performance Difference?

Innere bei Oracle mit, wo klausel

]

In der Oracle-Datenbank ist der Unterschied zwischen dem Verbinden von zwei Tabellen mit einem In-Network (inneren Join) und einer WO-Klausel ein häufiges Problem. Während es in bestimmten Situationen geringfügige Unterschiede zwischen den beiden geben kann, sind die Gesamtleistungsunterschiede häufig vernachlässigbar.

Das folgende Beispiel:

Select * from Table1 T1 
Inner Join Table2 T2 On T1.ID = T2.ID

sowie

Select * from Table1 T1, Table2 T2 
Where T1.ID = T2.ID

Beide Abfragen führen dieselbe Operation aus: Verkettungsreihen in Tabelle1 mit Zeilen in Tabelle2 basierend auf der Gleichheit der ID -Spalte. Um dies besser zu verstehen, erstellen wir zwei Beispieltabellen:

CREATE TABLE table1 (
  id INT,
  name VARCHAR(20)
);

CREATE TABLE table2 (
  id INT,
  name VARCHAR(20)
);

Ausführungsplan für Abfragen mithilfe von In-Konnektionen ausführen:

-- 使用内连接
EXPLAIN PLAN FOR
SELECT * FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.id;

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

... Holen Sie sich die folgende Ausgabe:

-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2

In ähnlicher Weise der Ausführungsplan einer Abfrage unter Verwendung der WHERE -Klausel:

-- 使用 WHERE 子句
EXPLAIN PLAN FOR
SELECT * FROM table1 t1, table2 t2
WHERE t1.id = t2.id;

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

... Gibt die folgende Ausgabe zurück:

-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2

Sie können sehen, dass beide Abfragen Hash -Verbindungen verwenden, um Verbindungsvorgänge auszuführen, und es gibt keinen signifikanten Unterschied im Ausführungsplan.

Daher hängt die Verwendung eines Intra-Join oder einer WO-Klausel in Oracle hauptsächlich von persönlichen Vorlieben oder den spezifischen Anforderungen des Datenbankschemas oder der verwendeten Abfrage ab.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3