sp_query_store_force_plan (Transact-SQL)sp_query_store_force_plan (Transact-SQL)

Применимо к:Applies to: даSQL Server 2016 (13.x);SQL Server 2016 (13.x)yesSQL Server 2016 (13.x);SQL Server 2016 (13.x) и более поздние версии ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed InstanceПрименимо к:Applies to: даSQL Server 2016 (13.x);SQL Server 2016 (13.x)yesSQL Server 2016 (13.x);SQL Server 2016 (13.x) and later ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance

Включает принудительное применение определенного плана для конкретного запроса.Enables forcing a particular plan for a particular query.

Если план принудительно используется для конкретного запроса, каждый раз при SQL ServerSQL Server возникновении запроса он пытается принудительно выполнить план в оптимизаторе запросов.When a plan is forced for a particular query, every time SQL ServerSQL Server encounters the query, it tries to force the plan in the Query Optimizer. Если форсирование плана завершается неудачей, запускается расширенное событие, и оптимизатор запросов подает запрос на оптимизацию обычным способом.If plan forcing fails, an Extended Event is fired and the Query Optimizer is instructed to optimize in the normal way.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

sp_query_store_force_plan [ @query_id = ] query_id , [ @plan_id = ] plan_id [;]  

АргументыArguments

[ @query_id = ] query_id Идентификатор запроса.[ @query_id = ] query_id Is the id of the query. query_id имеет тип bigintи не имеет значения по умолчанию.query_id is a bigint, with no default.

[ @plan_id = ] plan_id Идентификатор плана запроса, который необходимо принудительно применить.[ @plan_id = ] plan_id Is the id of the query plan to be forced. plan_id имеет тип bigintи не имеет значения по умолчанию.plan_id is a bigint, with no default.

Значения кода возвратаReturn Code Values

0 (успешное завершение) или 1 (неуспешное завершение)0 (success) or 1 (failure)

ПримечанияRemarks

РазрешенияPermissions

Требуется разрешение ALTER на базу данных.Requires the ALTER permission on the database.

ПримерыExamples

В следующем примере возвращаются сведения о запросах в хранилище запросов.The following example returns information about the queries in the query store.

SELECT Txt.query_text_id, Txt.query_sql_text, Pl.plan_id, Qry.*  
FROM sys.query_store_plan AS Pl  
JOIN sys.query_store_query AS Qry  
    ON Pl.query_id = Qry.query_id  
JOIN sys.query_store_query_text AS Txt  
    ON Qry.query_text_id = Txt.query_text_id ;  

Определив query_id и plan_id, которые требуется форсировать, используйте следующий пример, чтобы принудительно использовать план в запросе.After you identify the query_id and plan_id that you want to force, use the following example to force the query to use a plan.

EXEC sp_query_store_force_plan 3, 3;  

См. такжеSee Also

sp_query_store_remove_plan (Transct-SQL) sp_query_store_remove_plan (Transct-SQL)
sp_query_store_remove_query (Transact-SQL) sp_query_store_remove_query (Transact-SQL)
sp_query_store_unforce_plan (Transact-SQL) sp_query_store_unforce_plan (Transact-SQL)
Представления каталога хранилища запросов (Transact-SQL) Query Store Catalog Views (Transact-SQL)
Мониторинг производительности с помощью хранилища запросов Monitoring Performance by using the Query Store
sp_query_store_reset_exec_stats (Transact-SQL) sp_query_store_reset_exec_stats (Transact-SQL)
sp_query_store_flush_db (Transact-SQL) sp_query_store_flush_db (Transact-SQL)
Рекомендации по хранилищу запросовBest Practice with the Query Store