2015-11-16 3 views
0

Если у меня есть простой запрос, как это:Как ручки Oracle (выберите /, где) и присоединиться план выполнения

SELECT table1.col3, table2.col3 FROM table1 LEFT OUTER JOIN table2 
ON table1.col1 = table2.col1 
WHERE table1.col2>0; 
план выполнения

-Would Oracle выбрать все в table1, который удовлетворяет условию где дизъюнкцию первым, а затем присоединяется к таблицам или стихам стиха или является последовательным или находит лучший маршрут, который бы сэкономил бы ресурсы или производительность?

+1

Почему бы вам просто не взглянуть на план исполнения? –

+1

Он будет генерировать план запросов, основанный на том, что, по его мнению, является самым быстрым способом и делает это именно так. Вы увидите в плане запроса, что он делает –

+1

Вот два довольно хороших документа о оптимизаторе на основе затрат Oracle - [Оптимизатор Oracle Объясните план объяснения] (http://www.oracle.com/technetwork/database/ bi-datawarehousing/twp-explain-the-explain-plan-052011-393674.pdf), [Оптимизатор] (http://docs.oracle.com/cd/A87860_01/doc/server.817/a76992/optimops. HTM # 30169). – AndrewMcCoist

ответ

2

Это слишком долго для комментария.

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

Если у вас большие таблицы и col2 > 0 является довольно избирательным, и есть индекс на table1(col2), тогда Oracle, вероятно, будет использовать этот индекс для фильтрации сначала, а затем выполнить соединение.

+0

Соединение на основе индексов само по себе не является типом объединения. Индексы могут быть объединены с другими таблицами и индексами с использованием обычных алгоритмов вложенного цикла, хеша и слияния, как и любая другая таблица, потому что индекс - это не что иное, как точная сортированная версия таблицы. – Husqvik

Смежные вопросы