Присоединение подсказок запросов к руководству по плану

Любое сочетание допустимых подсказок запроса можно использовать в руководстве по плану. Когда руководство по плану соответствует запросу, предложение OPTION, указанное в подсказках руководства, добавляется в запрос перед его компиляцией и оптимизацией. Если запрос, соответствующий руководству плана, уже имеет предложение OPTION, указания запроса, указанные в руководстве по плану, заменяют их в запросе. Однако, чтобы руководство по плану соответствовало запросу с предложением OPTION, необходимо включить предложение OPTION запроса при указании текста запроса, соответствующего в инструкции sp_create_plan_guide. Если вы хотите, чтобы указания, указанные в руководстве по плану, добавлялись в подсказки, которые уже существуют в запросе, вместо замены их, необходимо указать как исходные подсказки, так и дополнительные указания в предложении OPTION руководства по плану.

Осторожность

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

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

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

Кроме того, можно указать указания таблицы INDEX, FORCESCAN и FORCESEEK в качестве подсказок запроса. При указании в качестве подсказок запроса эти подсказки ведут себя как встроенная таблица или подсказка представления. Указание INDEX заставляет оптимизатор запросов использовать только указанные индексы для доступа к данным в указанной таблице или представлении. Указание FORCESEEK заставляет оптимизатор использовать только операцию поиска индекса для доступа к данным в указанной таблице или представлении. Эти указания предоставляют дополнительные функции руководства по плану и позволяют более влиять на оптимизацию запросов, использующих руководство по плану.