«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Внутреннее присоединение против, где пункт в Oracle: какова реальная разница в производительности?

Внутреннее присоединение против, где пункт в Oracle: какова реальная разница в производительности?

Опубликовано в 2025-02-11
Просматривать:270

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

Inner присоединяйтесь в Oracle с Where Clause

]]]

в базе данных Oracle разница между присоединением к двум таблицам с использованием в сети (внутреннее соединение) и пунктом, где является общей проблемой. Хотя могут быть небольшие различия между ними в определенных ситуациях, общие различия в производительности часто незначительны.

]

Следующий пример:

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

а также

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

оба запроса выполняют одну и ту же операцию: incatenate строк в таблице 1 с рядами в таблице 2 на основе равенства столбца ID. Чтобы лучше понять это, давайте создадим две примеры таблицы:

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

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

запустить план выполнения для запроса с использованием соединений:

]
-- 使用内连接
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
]

Аналогично, план выполнения запроса с использованием пункта WHERE:

]
-- 使用 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
]

вы можете видеть, что оба запроса используют хеш -соединения для выполнения операций подключения, и нет существенной разницы в плане выполнения.

]

, следовательно, выбор использования внутриоборудования или в том, где пункт в Oracle зависит главным образом от личных предпочтений или конкретных потребностей схемы базы данных или используемого запроса.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3