sp_query_store_force_plan (Transact-SQL)
適用於:SQL Server 2016 (13.x) 和更新版本 Azure SQL 資料庫 Azure SQL 受控執行個體
啟用強制 查詢存放區 中特定查詢的特定計劃。
當特定查詢強制執行計劃時,每當 SQL Server 遇到查詢時,就會嘗試在查詢優化器中強制計劃。 如果計劃強制失敗,則會引發擴充事件,並指示查詢優化器以正常方式優化。
語法
sp_query_store_force_plan
[ @query_id = ] query_id ,
[ @plan_id = ] plan_id ,
[ @disable_optimized_plan_forcing = ] disable_optimized_plan_forcing ,
[ @force_plan_scope = ] 'replica_group_id'
[ ; ]
引數
[ @query_id = ] query_id
查詢的識別碼。 @query_id為 bigint,沒有預設值。
[ @plan_id = ] plan_id
要強制的查詢計劃標識碼。 @plan_id是 bigint,沒有預設值。
[ @disable_optimized_plan_forcing = ] disable_optimized_plan_forcing
指出是否應停用優化計劃強制。 @disable_optimized_plan_forcing是位,預設值為 0
。
[ @force_plan_scope = ] 'replica_group_id'
啟用次要複本 查詢存放區 時,您可以在次要複本上強制執行計劃。 在次要複本上執行 sp_query_store_force_plan
與 sp_query_store_unforce_plan
。 選擇性@force_plan_scope自變數只會預設為本機複本(主要或次要複本),但您可以選擇性地指定參考sys.query_store_replicas replica_group_id。
傳回碼值
0
(成功) 或 1
(失敗)。
備註
這項功能所強制產生的執行計劃與強制執行計劃相同或類似。 由於產生的計劃可能與 所 sys.sp_query_store_force_plan
指定的計劃不同,因此計劃的效能可能會有所不同。 在罕見的情況下,效能差異可能是顯著且負面的;在此情況下,系統管理員必須移除強制計劃。
使用 sys.query_store_plan_forcing_locations 檢閱次要複本上的強制計劃。
權限
需要資料庫的 ALTER 許可權。
範例
下列範例會傳回 查詢存放區 中查詢的相關信息。
SELECT txt.query_text_id,
txt.query_sql_text,
pl.plan_id,
qry.*
FROM sys.query_store_plan AS pl
INNER JOIN sys.query_store_query AS qry
ON pl.query_id = qry.query_id
INNER JOIN sys.query_store_query_text AS txt
ON qry.query_text_id = txt.query_text_id;
識別 您想要強制執行的query_id 和 plan_id 之後,請使用下列範例來強制查詢使用計劃。
EXEC sp_query_store_force_plan
@query_id = 3,
@plan_id = 3;
使用與sys.query_store_replicas聯結sys.query_store_plan_forcing_locations來擷取次要復本的 查詢存放區。
SELECT query_plan
FROM sys.query_store_plan AS qsp
INNER JOIN sys.query_store_plan_forcing_locations AS pfl
ON pfl.query_id = qsp.query_id
INNER JOIN sys.query_store_replicas AS qsr
ON qsr.replica_group_id = qsp.replica_group_id
WHERE qsr.replica_name = 'yourSecondaryReplicaName';
相關內容
- sys.query_store_plan_forcing_locations (Transact-SQL)
- sys.query_store_replicas (Transact-SQL)
- sp_query_store_remove_plan (Transact-SQL)
- sp_query_store_remove_query (Transact-SQL)
- sp_query_store_unforce_plan (Transact-SQL)
- 查詢存放區目錄檢視 (Transact-SQL)
- 使用查詢存放區監視效能
- sp_query_store_reset_exec_stats (Transact-SQL)
- sp_query_store_flush_db (Transact-SQL)
- 使用查詢存放區的最佳作法