適用於: SQL Server 2016 (13.x) 及以後版本
Azure SQL Database Azure
SQL Managed Instance
SQL database in Microsoft Fabric
針對 查詢存放區 中的特定查詢啟用先前強制計劃。
語法
sp_query_store_unforce_plan
[ @query_id = ] query_id ,
[ @plan_id = ] plan_id ,
[ @replica_group_id = ] 'replica_group_id'
[ ; ]
引數
重要
擴充預存程式的自變數必須依特定順序輸入,如 語法 一節所述。 如果參數依序輸入,就會發生錯誤訊息。
[ @query_id = ] query_id
查詢的識別碼。 @query_id為 bigint,沒有預設值。
[ @plan_id = ] plan_id
不再強制執行之查詢計劃的標識碼。 @plan_id是 bigint,沒有預設值。
[ @replica_group_id = ] 「replica_group_id」
啟用 可讀取次要複本的查詢存放區 時,您可以取消對次要複本的計劃。 在主要複本上執行 sp_query_store_force_plan 和 sp_query_store_unforce_plan。 使用 @replica_group_id 引數會預設為執行指令的本端抄本,但您可以指定參照sys.query_store_plan_forcing_locations系統型錄視圖的replica_group_id。
傳回碼值
0 (成功) 或 1 (失敗)。
權限
需要 ALTER 資料庫的權限。
備註
自 SQL Server 2025(17.x)及以後版本起,以及 Azure SQL 資料庫,支援次要副本的查詢儲存庫。 欲獲得完整的平台支援,請參閱 查詢商店中的次要副本。
範例
下列範例會傳回 查詢存放區 中查詢的相關信息。
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 之後,請使用下列範例來取消計劃。
EXECUTE sp_query_store_unforce_plan 3, 3;
相關內容
- sys.query_store_replicas (Transact-SQL)
- sys.query_store_plan_forcing_locations (Transact-SQL)
- sp_query_store_force_plan (Transact-SQL)
- sp_query_store_remove_plan (Transact-SQL)
- sp_query_store_remove_query (Transact-SQL)
- sp_query_store_reset_exec_stats (Transact-SQL)
- sp_query_store_flush_db (Transact-SQL)
- 查詢存放區目錄檢視 (Transact-SQL)
- 使用查詢存放區監視效能
- 使用查詢存放區的最佳作法