Графическое отображение планов выполнения (SQL Server Management Studio)
Среда SQL Server Management Studio является интерактивным графическим инструментом, который позволяет администратору или разработчику базы данных создавать запросы, выполнять несколько запросов одновременно, просматривать результаты, анализировать план запроса, а также предоставляет помощь, необходимую для улучшения производительности запросов. Параметры плана выполнения графически отображают способы получения данных, выбранные с помощью оптимизатора запросов SQL Server. Для графического отображения плана выполнения используются значки, представляющие выполнение определенных инструкций и запросов SQL Server вместо их табличного отображения, получаемого с помощью параметров SHOWPLAN_ALL или SHOWPLAN_TEXT инструкции SET языка Transact-SQL или с помощью XML-представления, получаемого при помощи инструкции SET SHOWPLAN_XML. Графическое отображение очень полезно для понимания показателей производительности запроса. Среда SQL Server Management Studio показывает, какой статистики не хватает, тем самым принуждая к оптимизации запросов за счет оценок качества выборки, а затем позволяет легко создать пропущенную статистику.
Примечание |
---|
Для зашифрованных хранимых процедур и триггеров планы выполнения не отображаются. |
Использование параметров плана выполнения
Откройте или введите в редакторе запросов среды Management Studio сценарий на языке Transact-SQL, содержащий запросы, которые нужно проанализировать. После того как сценарий будет загружен в редактор запросов среды Management Studio, выберите, какой план выполнения показывать — расчетный или фактический, нажав кнопку Показать предполагаемый план выполнения или кнопку Включить действительный план выполнения на панели инструментов редактора запросов. Если нажать кнопку Показать предполагаемый план выполнения, выполняется анализ сценария и формируется расчетный план выполнения. Если нажать кнопку Включить действительный план выполнения, перед формированием плана выполнения необходимо выполнить сценарий. После того, как сценарий проанализирован и выполнен, выберите вкладку План выполнения, чтобы просмотреть графическое представление результатов формирования плана.
Чтобы воспользоваться графическими возможностями плана выполнения в среде Management Studio и параметрами SHOWPLAN инструкции SET языка Transact-SQL, пользователи должны обладать достаточными разрешениями на выполнение инструкций и запросов языка Transact-SQL. Также пользователи должны обладать разрешением SHOWPLAN на все базы данных, в которых содержатся упомянутые в запросах объекты. Дополнительные сведения см. в разделе Безопасность инструкции Showplan.
Графическое считывание результатов работы плана выполнения
Для просмотра плана выполнения перейдите на вкладку План выполнения в области результатов. Графическое представление результатов работы плана выполнения в среде SQL Server Management Studio читается справа налево и сверху вниз. Каждый проанализированный запрос в пакете отображается вместе с затратами на его выполнение в процентном отношении от общих затрат на выполнение пакета. Дополнительные сведения о значках, используемых при отображении планов выполнения в Management Studio, см. в разделе Значки графических планов выполнения (среда SQL Server Management Studio).
Следующие описания являются руководством по интерпретации результатов графического отображения плана выполнения в среде Management Studio:
Каждый узел древовидной структуры представлен в виде значка, указывающего логический и физический оператор, используемый для выполнения этой части запроса или инструкции.
Каждый узел связан со своим родительским узлом. Дочерние узлы одного родительского узла отображаются в одном столбце. Однако все узлы в одном столбце не обязательно имеют общий родительский узел. Правила со стрелками на конце соединяют каждый узел с его родителем.
Операторы показаны в виде символов, связанных с определенным родительским узлом.
Ширина стрелки пропорциональна количеству строк. Если имеются данные о фактическом количестве строк, используются эти данные. В противном случае используется ориентировочное количество строк.
Если запрос содержит несколько инструкций, показывается несколько планов выполнения запроса.
Части древовидных структур определены типом выполняемой инструкции.
Для параллельных запросов, которые задействуют несколько процессоров, пункт меню Свойства для каждого узла в графическом плане выполнения отображает сведения об используемых потоках операционной системы. Чтобы просмотреть свойства узла, щелкните узел правой кнопкой мыши и выберите Свойства. Дополнительные сведения о параллельных запросах см. в разделе Параллельная обработка запросов.
Тип инструкции
Элемент древовидной структуры
Язык Transact-SQL и хранимые процедуры
Если инструкция является хранимой процедурой или инструкцией на языке Transact-SQL, она становится корнем древовидной структуры графического представления плана выполнения. Хранимая процедура может иметь несколько дочерних элементов, которые представляют собой инструкции, вызываемые хранимой процедурой. Каждый дочерний элемент — это узел или ветвь дерева.
Язык обработки данных (DML)
Если анализируемая с помощью оптимизатора запросов SQL Server инструкция является DML-инструкцией, такой как SELECT, INSERT, DELETE или UPDATE, она является корневым элементом дерева. DML-инструкции могут содержать до двух дочерних элементов. Первый дочерний элемент — это план выполнения этой DML-инструкции. Второй дочерний элемент представляет собой триггер, если триггер используется в инструкции.
Условные
Графический план выполнения делит условные инструкции, такие как IF...ELSE (при выполнении условия делать одно, в противном случае — что-то другое), на три дочерних элемента. Инструкция IF...ELSE является корнем дерева. Условие IF становится узлом поддерева. Условия THEN и ELSE представлены в виде блоков инструкций. Инструкции WHILE и DO-UNTIL представлены аналогичным образом. Инструкции IF и WHILE имеют собственные значки.
Реляционные операторы
Операции, выполняемые с помощью ядра запросов, такие как сканирование таблиц, соединения и статистические выражения, представлены в виде узлов дерева.
DECLARE CURSOR
Инструкция DECLARE CURSOR является корневым элементом дерева графического плана выполнения; в качестве дочернего элемента выступает связанное с ним выражение.
С каждым из трех типов значков связаны свои собственные цвета: значки итераторов (логические и физические операторы) имеют синий цвет, значки курсоров — желтый, элементы языка — зеленый.
Всплывающие подсказки узлов графического плана выполнения
Каждый узел отображает во всплывающей подсказке, возникающей при наведении курсора на этот узел, сведения в соответствии с содержимым следующей таблицы. Не все узлы в графическом плане выполнения имеют всплывающие подсказки, которые описаны здесь.
Элемент |
Описание |
---|---|
Физическая операция |
Используемый оператор, такой как Hash Join или Nested Loops. Физические операторы, отображаемые красным цветом, показывают, что оптимизатор запросов выдал предупреждение, например предупреждение о нехватке статистики столбцов или отсутствии предикатов соединения. Это может привести к выбору оптимизатором плана запроса менее эффективного, чем тот, который ожидался. Дополнительные сведения о статистике столбцов см. в разделе Использование статистики для повышения производительности запросов. Если графический план выполнения предлагает создание или обновление статистики либо создание индекса, отсутствующая статистика или индексы могут быть немедленно созданы или изменены с использованием контекстных меню обозревателя объектов среды SQL Server Management Studio. Дополнительные сведения см. в разделе Инструкции по индексам. |
Логическая операция |
Логический оператор, который соответствует физическому оператору, такому как оператор Inner Join. Имя логического оператора приводится после физического оператора сверху всплывающей подсказки. |
Предполагаемый размер строки |
Предполагаемый размер строки, получаемой на выходе оператора (в байтах). |
Предполагаемая стоимость операций ввода-вывода |
Приблизительные затраты на выполнение действий ввода-вывода для данной операции. Это значение должно быть минимально возможным. |
Предполагаемая стоимость процессного ресурса |
Приблизительные затраты на произведение ЦП всех вычислений для данной операции. |
Предполагаемая стоимость оператора |
Затраты оптимизатора запросов на выполнение этой операции. Затраты на выполнение этой операции в процентном отношении к общим затратам на выполнение запроса отображается в скобках. Так как ядро запросов выбирает наиболее эффективную операцию для выполнения запроса или инструкции, это значение должно быть минимально возможным. |
Предполагаемая стоимость поддерева |
Общие затраты оптимизатора запросов на выполнение этой и всех предшествующих операций в данном поддереве. |
Предполагаемое количество строк1 |
Количество строк, выдаваемых оператором. |
1 Эта всплывающая подсказка выглядит так же, как Количество строк в действительном плане выполнения.
Примечание |
---|
Сведения, которые были доступны в полях Argument графических планов выполнения SQL Server 2000, сейчас представлены отдельно — во всплывающей подсказке графических планов выполнения. |
Свойства узлов графического плана выполнения
Просмотреть подробные сведения об узле графического плана выполнения можно, щелкнув узел правой кнопкой мыши и выбрав Свойства.
См. также