Планы выполнения
Применимо к:База данных
SQL Server Azure SQL Управляемый экземпляр SQL Azure
Чтобы иметь возможность выполнять запросы, Компонент SQL Server Database Engine должен анализировать инструкцию и определять наиболее эффективный способ доступа к необходимым данным. Этот анализ обрабатывается компонентом, который называется оптимизатором запросов. Входные данные оптимизатора запросов включают сам запрос, схему базы данных (определения таблиц и индексов) и статистику базы данных. Выходные данные оптимизатора запросов — это план выполнения запроса, который иногда называется планом запроса или выполнения.
План выполнения запроса представляет собой определение следующего.
Последовательности, в которой происходит обращение к исходным таблицам.
Как правило, существует много последовательностей, в которых сервер базы данных может обращаться к базовым таблицам для построения результирующего набора. Например, если инструкция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
).
Примечание
В SQL Server Management Studio есть три способа отображения планов выполнения:
- Предполагаемый план выполнения — это скомпилированный план, созданный оптимизатором запросов на основе оценок. Это план запроса, который хранится в кэше планов.
- Фактический план выполнения — это скомпилированный план и контекст выполнения. Он станет доступным после выполнения запроса. Сюда входят актуальные сведения о среде выполнения, включая предупреждения, касающиеся выполнения, а также в более новых версиях Компонент Database Engine — время, затраченное на выполнение, и время ЦП.
- Динамическая статистика запросов — это скомпилированный план и контекст выполнения. Он доступен для выполнения запросов в реальном времении обновляется каждую секунду. Сюда входят такие сведения о среде выполнения, как фактическое число строк, проходящих через операторы, затраченное время и предполагаемый ход выполнения запроса.
Совет
См. сведения о планах обработки и выполнения запросов в руководстве по оптимизации инструкций SELECT и кэшированию и повторному использованию плана выполнения в документации по архитектуре обработки запросов.
в этом разделе
Инфраструктура профилирования запросов
Отображение и сохранение планов выполнения
Сравнение и анализ планов выполнения
Руководства планов
См. также:
Наблюдение и настройка производительности
Средства контроля и настройки производительности
Руководство по архитектуре обработки запросов
Динамическая статистика запросов
Монитор активности
Мониторинг производительности с использованием хранилища запросов
sys.dm_exec_query_statistics_xml
sys.dm_exec_query_profiles
Флаги трассировки
Справочник по логическим и физическим операторам Showplan