Планы выполнения

Применимо к:база данных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