АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Management Studio

Читайте также:
  1. Crisis management in PR
  2. Example - Real World Risk Management
  3. Management
  4. Supply Chain Management (SCM) — управление цепями поставок.
  5. В электронном виде опубликовано на http://e-management.newmail.ru/ в 2000 г.
  6. Интерфейс программы 3D Studio MAX
  7. Создание проекта служб Analysis Services в среде BI Dev Studio.
  8. Структура проекта в среде Visual Studio
  9. Типы проектов бизнес-аналитики в среде BI Dev Studio. Основные различия между SSMS и BI Dev Studio.
  10. Управление взаимоотношениями с клиентами (Customer Relationship Management, CRM). CRM-системы

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

 

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

 

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

 

Включение плана выполнения для запроса в процессе выполнения

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

2. В меню Запрос выберите Включить действительный план выполнения или нажмите кнопку Включить фактический план выполнения на панели инструментов

3. Выполните запрос, нажав кнопку Выполнить на панели инструментов. План, используемый оптимизатором запросов, отображается на вкладке План выполнения на панели результатов.

4. Для просмотра плана выполнения перейдите на вкладку План выполнения на панели результатов. Графическое представление результатов работы плана выполнения в среде SQL Server Management Studio читается справа налево и сверху вниз. Каждый проанализированный запрос в пакете отображается вместе с затратами на его выполнение в процентном отношении от общих затрат на выполнение пакета.

 

 

Следующие описания являются руководством по интерпретации результатов графического отображения плана выполнения в среде Management Studio:

· Каждый узел древовидной структуры представлен в виде значка, указывающего логический и физический оператор, используемый для выполнения этой части запроса или инструкции.

· Каждый узел связан со своим родительским узлом. Дочерние узлы одного родительского узла отображаются в одном столбце. Однако все узлы в одном столбце не обязательно имеют общий родительский узел. Правила со стрелками на конце соединяют каждый узел с его родителем.

· Операторы показаны в виде символов, связанных с определенным родительским узлом.

· Ширина стрелки пропорциональна количеству строк. Если имеются данные о фактическом количестве строк, используются эти данные. В противном случае используется ориентировочное количество строк.

· Если запрос содержит несколько инструкций, показывается несколько планов выполнения запроса.

· Части древовидных структур определены типом выполняемой инструкции.

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

 

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

Значок Оператор
Arithmetic Expression
Assert (Утверждения)
Bitmap (Точечный рисунок)
Bookmark Lookup (Поиск Закладки)
Clustered Index Delete (Удаление кластеризованного индекса)
Clustered Index Insert (Вставка кластеризованного индекса)
Clustered Index Scan (Просмотр Индекса)
Clustered Index Seek (Поиск индекса)
Clustered Index Update (Изменение кластеризованного индекса)
Collapse (оптимизирует процедуру обновления)
Compute Scalar (Вычисление)
Concatenation (Сцепление, объединение)
Constant Scan (Постоянный(Неизменный) Просмотр)
Delete (Удаление)
Deleted Scan (Удаленные сканирования)
Eager Spool (Буферизовать)
Filter (Выбор)
Hash Match (Не используется)
Hash Match Root (Не используется)
Hash Match Team (Не используется)
Insert
Inserted Scan (просмотр таблицы inserted внутри триггера)
Iterator Catchall (Значок общего захвата отображается в тех случаях, когда логикой, управляющей графическими планами визуализации, не может быть найдено подходящего значка для итератора)
Lazy Spool (сохранение всех строк входных данных в скрытом временном объекте, который хранится в базе данных tempdb. Если оператор сбрасывается на начало (например оператором Nested Loops), но при этом не требуется повторная привязка, то вместо повторного сканирования ввода используются буферизованные данные)
Log Row Scan (просмотр журнала транзакций)
Merge Interval (слияние нескольких (возможно, пересекающихся) интервалов и возвращает минимальный, непересекающийся интервал, который затем используется для поиска записей индекса)
Merge Join (выполняет внутреннее соединение, левое внешнее соединение, правое внешнее соединение)
Nested Loops (вложенный цикл)
Nonclustered Index Delete
Nonclustered Index Insert (вставляет строки из входного потока в некластеризованный индекс, заданный в столбце Argument. Кроме того, столбец Argument содержит предикат SET:(), который указывает значение, заданное для каждого столбца)
Nonclustered Index Scan
Nonclustered Index Seek (Поиск)
Nonclustered Index Spool
Nonclustered Index Update
Online Index Insert
Parameter Table Scan
Remote Delete
Remote Insert
Remote Query
Remote Scan
Remote Update
RID Lookup
Row Count Spool (записывать в буферный файл)
Segment (сегментация)
Sequence (последовательность)
SequenceProject
Sort
Split
Spool (записывать в буферный файл)
Stream Aggregate
Switch
Table Delete
Table Insert
Table Scan
Table Spool
Table Update
Table-valued Function
Top
UDX
Update

 

Особенности представления дерева плана для разных типов инструкций приведены в таблице.

Тип инструкции Элемент древовидной структуры
Язык 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 Эта всплывающая подсказка выглядит так же, как Количество строк в реальном плане выполнения.

Не все узлы в графическом плане выполнения имеют всплывающие подсказки, которые описаны в таблице.

 

Пример: имеется индексдля столбцаStateProvinceID таблицы new_addresses.

-- высокая селективность (выбирается одна строка из 19814)

USE sample;

SELECT * FROM new_addresses AS a

WHERE a.StateProvinceID = 32;

 

 

Из структуры плана видно, что оптимизатор использует индекс для столбца StateProvinceID.

Примечание: оператор Nested Loops (вложенный цикл) всегда отображается, даже если запрос для одной таблицы).

 

Пример:

-- низкая селективность (отношение количества строк, удовлетворяющему условию, к общему количеству строк равно 23%)

USE sample;

SELECT * FROM new_addresses a

WHERE a.StateProvinceID =9;

 

План отличается (индекс не используется, таблица сканируется).

 

Пример:

USE AdventureWorks;

SELECT * FROM HumanResources.Employee AS e

JOIN HumanResources.EmployeeAddress AS a

ON e.EmployeeID = a.EmployeeID

AND e.EmployeeID = 10;

 

Запрос использует метод вложенных циклов (Nested Loops (вложенный цикл)), хотя в соединяемых столбцах таблиц имеются первичные ключи (соответственно – кластеризованные индексы). Оптимизатор принимает решение использовать вложенные циклы, так как существует дополнительный фильтр (e.EmployeeID = 10), сокращающий результирующий набор до одной строки. Оператор Clustered Index Seek использует поисковые возможности индексов для получения строк из кластеризованного индекса.

Пример:

USE AdventureWorks;

SELECT * FROM HumanResources.Employee AS e

JOIN HumanResources.EmployeeAddress AS a

ON e.EmployeeID = a.EmployeeID

 

В этом запросе отсутствует условие e.EmployeeID = 10 и результирующий набор содержит много строк. В этом случае оптимизатор выбирает метод слияния соединения. Merge Join (Слияние соединения).


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.013 сек.)