Поделиться через


Сравнение планов выполнения

Область применения: SQL Server

В этом разделе описывается сравнение сходств и различий между фактическими графическими планами выполнения с помощью функции сравнения планов SQL Server Management Studio. Эта функция доступна начиная с SQL Server Management Studio версии 16.

Примечание.

Фактические планы выполнения создаются после выполнения запросов Или пакетов Transact-SQL. Поэтому фактический план выполнения содержит сведения о времени выполнения, такие как фактическое число строк, фактические метрики использования ресурса и предупреждения времени выполнения (если они есть). Дополнительные сведения см. в статье Отображение фактического плана выполнения.

Возможность сравнить планы нужна специалистам по базам данных для устранения неполадок:

  • Найти причину внезапного замедления запроса или пакета.
  • Понять влияние переписывания запроса.
  • Понаблюдать, как улучшение производительности в структуре схемы (например, новый индекс) изменило план выполнения.

Пункт меню Сравнение планов позволяет параллельно сравнить два разных плана выполнения для удобства определения сходств и изменений, которые объясняют отличия в поведении для всех указанных выше причин. Этот параметр позволяет сравнивать:

  • два ранее сохраненных файла плана выполнения (.sqlplan);
  • один активный план выполнения и один ранее сохраненный план выполнения запросов;
  • два выбранных плана запроса в хранилище запросов.

Совет

Сравнение планов работает с любыми SQLplan-файлами, даже из более старых версий SQL Server. Кроме того, этот параметр включает автономное сравнение, поэтому не требуется подключаться к экземпляру SQL Server.

При сравнении двух планов выполнения области плана, выполняющие одинаковые функции, выделены одним цветом или узором. Если вы нажмете на область одного цвета в одном плане, другой план будет центрирован по тому же узлу. Вы по-прежнему можете сравнивать непарные операторы и узлы в планах выполнения, но в этом случае необходимо вручную выбрать операторы для сравнения.

Внимание

Только узлы, которые меняют форму плана, используются для проверки сходства. Поэтому некоторые узлы могут быть не выделены цветом между двух узлов, которые входят в один подраздел плана. Отсутствие цвета в данном случае означает, что узлы не учитываются при проверке схожести разделов.

Сравнение планов выполнения

  1. Откройте ранее сохраненный файл плана выполнения запроса (.sqlplan) с помощью меню "Файл " и щелкните "Открыть файл" или перетащите файл плана в окно Management Studio. Кроме того, если вы только что выполнили запрос и выбрали показать его план выполнения, перейдите на вкладку План выполнения на панели результатов.

  2. Щелкните правой кнопкой мыши в пустой области плана выполнения и выберите пункт Сравнить showplan.

    Щелкните правой кнопкой мыши Сравнить Showplan

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

  4. Сравниваемые планы откроются в новом окне, по умолчанию один будет расположен сверху, а другой снизу. По умолчанию будет выделено первое вхождение оператора или узла, которые присутствуют в обоих планах, но имеют различия. Все выделенные операторы и узлы существуют в обоих планах. Если вы выберете выделенный оператор в верхнем или левом плане, соответствующий оператор будет автоматически выбран в нижнем или правом плане. Если вы выберете оператор корневого узла в любом из сравниваемых планов (узел SELECT на рисунке ниже), будет выбран соответствующий оператор корневого узла в другом плане.

    Сравнение двух сохраненных файлов планов

    Совет

    Вы можете разместить планы слева и справа — щелкните правой кнопкой мыши пустую область плана выполнения и выберите Переключить ориентацию разделителя.

    Совет

    Все параметры масштабирования и навигации для планов выполнения работают в режиме сравнения планов. Дополнительные сведения см. в статье Отображение фактического плана выполнения.

  5. Справа в области по умолчанию также откроется окно двойных свойств. Свойства, которые существуют в обоих сравниваемых операторах, но имеют различия, будут предшествовать не равному знаку (≠) для упрощения идентификации.

    Двойное окно свойств

  6. Также в нижней части откроется окно навигации Анализ Showplan. В нем три вкладки:

    1. На вкладке Параметры инструкции по умолчанию выбрано Выделить аналогичные операции и один выделенный оператор или узел в сравниваемых планах отмечен одним цветом или линией. Нажимайте на тип линии, чтобы перемещаться между схожими областями в сравниваемых планах. Вы также можете настроить выделение различий, а не сходств, выбрав Выделить операции, не совпадающие с аналогичными сегментами.

    Примечание.

    По умолчанию имена баз данных не учитываются при сравнении планов, чтобы можно было сравнивать планы для разных баз данных, но с одинаковой схемой. Например, при сравнении планов из баз данных ProdDB и TestDB. Это поведение можно изменить с помощью параметра Не учитывать имя базы данных при сравнении операторов.

    Окно анализа Showplan

    1. Вкладка Несколько операторов полезна при сравнении планов с несколькими операторами, поскольку позволяет сравнивать правильную пару операторов.

      Несколько инструкций в сравниваемом плане

    2. На вкладке Сценарии можно найти автоматический анализ некоторых наиболее важных аспектов, связанных с различиями Оценки кратности в сравниваемых планах. Для каждого оператора, указанного на левой панели, на правой панели отображаются сведения о сценарии по ссылке Щелкните здесь, чтобы ближе познакомиться с этим сценарием., а также возможные причины, объясняющие этот сценарий.

      Различное предполагаемое число строк

    Если это окно закрыто, щелкните правой кнопкой мыши на пустую область сравниваемого плана и выберите Параметры сравнения Showplan, чтобы открыть его повторно.

    Параметры сравнения плана

Сравнение планов выполнения в хранилище запросов

  1. В хранилище запросов найдите запрос с несколькими планами выполнения. Дополнительные сведения о сценариях хранилища запросов см. в разделе Сценарии использования хранилища запросов.

  2. Используйте сочетание клавиши SHIFT и мыши, чтобы выбрать два плана для одного запроса.

    Выбор двух планов в хранилище запросов

  3. Нажмите кнопку Сравнить планы выбранного запроса в отдельном окне, чтобы запустить сравнение планов. Затем применяются шаги 4–6 для сравнения планов выполнения.

    Сравнение Showplan в хранилище запросов