"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Inner Join vs. Where Cláusula en Oracle: ¿Cuál es la diferencia de rendimiento real?

Inner Join vs. Where Cláusula en Oracle: ¿Cuál es la diferencia de rendimiento real?

Publicado el 2025-02-11
Navegar:619

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

Inner Únete en Oracle con Where Clause

]]

en Oracle Database, la diferencia entre unir dos tablas usando un trabajo en la red (unión interna) y una cláusula Where es un problema común. Si bien puede haber ligeras diferencias entre las dos en ciertas situaciones, las diferencias generales de rendimiento a menudo son insignificantes.

el siguiente ejemplo:

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

así como también

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

Ambas consultas realizan la misma operación: Concatenate Filas en la Tabla1 con filas en la Tabla2 según la igualdad de la columna ID. Para comprender mejor esto, creemos dos tablas de muestra:

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

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

Ejecutar el plan de ejecución para consulta usando en las coniciones:

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

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

... Obtenga la siguiente salida:

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

De manera similar, el plan de ejecución de una consulta usando la cláusula WHERE:

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

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

... Devuelve la siguiente salida:

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

puede ver que ambas consultas usan conexiones hash para realizar operaciones de conexión, y no hay diferencias significativas en el plan de ejecución.

Por lo tanto, elegir usar una cláusula intra unir o una cláusula Where en Oracle depende principalmente de las preferencias personales o las necesidades específicas del esquema de la base de datos o la consulta utilizada.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3