Обзор плана выполнения
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Чтобы иметь возможность выполнять запросы, sql Server ядро СУБД должен проанализировать инструкцию, чтобы определить эффективный способ доступа к необходимым данным и обработать его. Этот анализ обрабатывается компонентом, который называется оптимизатором запросов. Входные данные оптимизатора запросов включают сам запрос, схему базы данных (определения таблиц и индексов) и статистику базы данных. Оптимизатор запросов создает один или несколько планов выполнения запросов, иногда называются планами выполнения запросов или планами выполнения. Оптимизатор запросов выбирает план запроса с помощью набора эвристики для балансировки времени компиляции и оптимальности плана для поиска хорошего плана запроса.
Совет
Дополнительные сведения о планах обработки запросов и выполнения запросов см. в разделах , посвященных оптимизации инструкций SELECT и кэшированию планов выполнения и повторному использованию руководства по архитектуре обработки запросов.
Сведения о просмотре планов выполнения в SQL Server Management Studio и Azure Data Studio см. в статье "Отображение и сохранение планов выполнения".
План выполнения запроса — это определение:
Последовательности, в которой происходит обращение к исходным таблицам.
Как правило, существует много последовательностей, в которых сервер базы данных может обращаться к базовым таблицам для построения результирующего набора. Например, если инструкция
SELECT
ссылается на три таблицы, сервер базы данных сначала может обратиться кTableA
, использовать данные изTableA
для извлечения соответствующих строк изTableB
, а затем использовать данные изTableB
для извлечения данных изTableC
. Другие последовательности, в которых сервер базы данных может обращаться к таблицам:
TableC
,TableB
,TableA
или
TableB
,TableA
,TableC
или
TableB
,TableC
,TableA
или
TableC
, ,TableA
TableB
Методы, используемые для извлечения данных из каждой таблицы.
Есть различные методы для обращения к данным в каждой таблице. Если необходимы только несколько строк с определенными ключевыми значениями, то сервер базы данных может использовать индекс. Если необходимы все строки в таблице, то сервер базы данных может пропустить индексы и выполнить просмотр таблицы. Если все строки таблицы необходимы, но есть индекс, ключевые столбцы которого находятся в элементе
ORDER BY
, выполнение проверки индекса вместо сканирования таблицы может сохранить отдельный результирующий набор. Если таблица небольшая, сканирование таблиц может быть наиболее эффективным методом для почти всего доступа к таблице.Методы, используемые для вычислений, а также фильтрации, статистической обработки и сортировки данных из каждой таблицы.
По мере доступа к данным из таблиц можно разными способами выполнять вычисления над данными (например, вычисления скалярных значений), а также статистическую обработку и сортировку данных, как определено в тексте запроса (например, при использовании предложения
GROUP BY
илиORDER BY
) и их фильтрацию (например, при использовании предложенияWHERE
илиHAVING
).
Связанный контент
- Наблюдение и настройка производительности
- Средства мониторинга производительности и настройки
- Руководство по архитектуре обработки запросов
- Динамическая статистика запросов
- Монитор активности
- Мониторинг производительности с использованием хранилища запросов
- sys.dm_exec_query_statistics_xml
- sys.dm_exec_query_profiles
- DBCC TRACEON — флаги трассировки (Transact-SQL)
- Справочник по оператору логического и физического шоуплана
- Инфраструктура профилирования запросов
- Отображение и сохранение планов выполнения
- Сравнение и анализ планов выполнения
- Руководства планов