inner participa no oracle com onde a cláusula
]No banco de dados Oracle, a diferença entre unir duas tabelas usando uma rede (junção interna) e uma cláusula onde é um problema comum. Embora possa haver pequenas diferenças entre os dois em determinadas situações, as diferenças gerais de desempenho geralmente são insignificantes.
o seguinte exemplo:
Select * from Table1 T1
Inner Join Table2 T2 On T1.ID = T2.ID
assim como
Select * from Table1 T1, Table2 T2
Where T1.ID = T2.ID
Ambas as consultas executam a mesma operação: Concatenate linhas na Tabela1 com linhas na Tabela2 com base na igualdade da coluna ID. Para entender melhor isso, vamos criar duas tabelas de amostra:
CREATE TABLE table1 (
id INT,
name VARCHAR(20)
);
CREATE TABLE table2 (
id INT,
name VARCHAR(20)
);
Execute o plano de execução para consulta usando as conexões:
-- 使用内连接
EXPLAIN PLAN FOR
SELECT * FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.id;
SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);
... obtenha a seguinte saída:
-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2
Da mesma forma, o plano de execução de uma consulta usando a cláusula where:
-- 使用 WHERE 子句
EXPLAIN PLAN FOR
SELECT * FROM table1 t1, table2 t2
WHERE t1.id = t2.id;
SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);
... retorna a seguinte saída:
-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2
você pode ver que ambas as consultas usam conexões de hash para executar operações de conexão e não há diferença significativa no plano de execução.
, portanto, optar por usar uma jóia intra ou uma cláusula onde o Oracle depende principalmente de preferências pessoais ou das necessidades específicas do esquema do banco de dados ou da consulta usada.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3