План выполнения запроса
Материал из Википедии — свободной энциклопедии
План выполне́ния запро́са — последовательность шагов, необходимых для получения результата SQL-запроса в реляционной СУБД. Например, для такого запроса, как
SELECT FROM Продажи ORDER BY Номер_продавца
может быть создан такой план выполнения:
- Сканирование кластерного индекса для первичного ключа таблицы Продажи.
- Сортировка результатов шага 1 по столбцу Номер_продавца.
- Возврат приложению результатов шага 2.
Оптимизатор запросов (компонент СУБД) использует хранящуюся в базе данных вместе с таблицами и индексами статистическую информацию, на основе которой он оценивает альтернативные способы формирования результатов запроса. Например, команду ORDER BY в инструкции SELECT можно выполнить с использованием имеющегося в базе индекса, либо же путем физической сортировки строк. Оптимизатор старается выбрать самый эффективный план выполнения запроса.
Изучение планов выполнения запросов, созданных оптимизатором, позволяет решить, как ускорить выполнение запроса — изменить сам запрос или создать в базе данных дополнительный индекс.