Inner Join In Oracle avec la clause
Dans Oracle Database, la différence entre rejoindre deux tables à l'aide d'un réseau intérieur (jointure intérieure) et une clause où est un problème commun. Bien qu'il puisse y avoir de légères différences entre les deux dans certaines situations, les différences globales de performance sont souvent négligeables.
L'exemple suivant:
Select * from Table1 T1
Inner Join Table2 T2 On T1.ID = T2.ID
ainsi que
Select * from Table1 T1, Table2 T2
Where T1.ID = T2.ID
Les deux requêtes effectuent la même opération: concaténate les lignes dans le tableau 1 avec des lignes dans le tableau2 en fonction de l'égalité de la colonne ID. Pour mieux comprendre cela, créons deux exemples de tables:
CREATE TABLE table1 (
id INT,
name VARCHAR(20)
);
CREATE TABLE table2 (
id INT,
name VARCHAR(20)
);
Exécuter le plan d'exécution pour la requête en utilisant des connexions:
-- 使用内连接
EXPLAIN PLAN FOR
SELECT * FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.id;
SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);
... Obtenez la sortie suivante:
-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2
De même, le plan d'exécution d'une requête en utilisant la clause Where:
-- 使用 WHERE 子句
EXPLAIN PLAN FOR
SELECT * FROM table1 t1, table2 t2
WHERE t1.id = t2.id;
SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);
... renvoie la sortie suivante:
-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2
Vous pouvez voir que les deux requêtes utilisent des connexions de hachage pour effectuer des opérations de connexion, et il n'y a pas de différence significative dans le plan d'exécution.
Par conséquent, choisir d'utiliser une intra-jointure ou une clause où Oracle dépend principalement des préférences personnelles ou des besoins spécifiques du schéma de base de données ou de la requête utilisée.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3