Как создать структуру плана (SQL Server Management Studio)
В данном подразделе описано, как создать структуру плана с помощью среды SQL Server Management Studio. Структура плана влияет на оптимизацию запросов путем присоединения подсказок для запросов или фиксированного плана запросов к ним. В структуре плана указывается инструкция Transact-SQL, которую нужно оптимизировать и либо предложение OPTION, содержащее подсказки в запросе, либо специальный план запроса, которые будут использоваться для оптимизации запроса. Когда запрос выполняется, оптимизатор запросов сопоставляет инструкцию Transact-SQL со структурой плана и либо присоединяет условие OPTION к запросу в процессе выполнения, либо использует указанный план запроса.
В следующем примере создается структура плана для инструкции Transact-SQL, к которой затем применяется подсказка в запросе FORCESEEK. Данная подсказка в запросе заставляет оптимизатор использовать операцию поиска по индексу для обращения к данным в указанной таблице.
Создание примера структуры плана
В обозревателе объектов подключитесь к экземпляру Database Engine и разверните его.
Последовательно разверните узел Базы данных, базу данных AdventureWorks и узел Программирование.
Щелкните правой кнопкой мыши раздел Структуры планов и выберите команду Создать структуру плана.
В поле Имя введите ForceseekPlan в качестве имени структуры плана.
В поле Инструкция введите приведенную ниже инструкцию Transact-SQL. Это инструкция, к которой будет применяться структура плана.
SELECT c.LastName, c.FirstName, HumanResources.Employee.Title FROM HumanResources.Employee JOIN Person.Contact AS c ON HumanResources.Employee.ContactID = c.ContactID WHERE HumanResources.Employee.ManagerID = 3 ORDER BY c.LastName, c.FirstName;
В поле Тип области выберите SQL в качестве типа сущности, в которой будет представлена инструкция Transact-SQL.
В поле Подсказки введите приведенное ниже предложение OPTION.
OPTION (TABLE HINT(HumanResources.Employee, FORCESEEK))
Чтобы создать структуру плана, нажмите кнопку ОК.
Проверка того, сопоставлена ли структура плана с запросом
Запустите трассировку Приложение SQL Server Profiler, при этом должны быть выбраны типы событий Plan Guide Successful и Plan Guide Unsuccessful (они находятся в узле Производительность).
Запустите запрос из шага 5 предыдущей процедуры.
Приостановите трассировку в приложении Приложение SQL Server Profiler.
Найдите событие Plan Guide Successful для соответствующего запроса.
Если сопоставить структуру плана с запросом не удается, убедитесь, что запрос указан в том же формате (посимвольно), в котором он был введен в инструкции структуры плана. Сюда относятся символы табуляции, пробелы, символы возврата каретки и перевода строки.
См. также