Maison > base de données > tutoriel mysql > Jointure interne et clause WHERE dans Oracle : produisent-elles des performances différentes ?

Jointure interne et clause WHERE dans Oracle : produisent-elles des performances différentes ?

Barbara Streisand
Libérer: 2025-01-20 08:27:09
original
237 Les gens l'ont consulté

Inner Join vs. WHERE Clause in Oracle:  Do They Produce Different Performance?

Comparaison des performances des jointures internes et des clauses WHERE dans la base de données Oracle

Dans Oracle Database, les jointures internes et les clauses WHERE montrent un haut degré de cohérence dans les performances, et les plans d'exécution générés par les deux sont presque identiques.

Regardons un exemple, en supposant que nous avons deux tables :

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

CREATE TABLE table2 (
  id INT,
  name VARCHAR(20)
);
Copier après la connexion

Le plan d'exécution des requêtes utilisant les jointures internes est le suivant :

-- 使用内连接
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
Copier après la connexion

Le plan d'exécution de requête équivalent utilisant la clause WHERE est similaire :

-- 使用 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
Copier après la connexion

Comme le montre le plan d'exécution, les deux méthodes utilisent des jointures par hachage et effectuent des analyses complètes des tables table1 et table2. Leurs performances sont donc quasiment identiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal