如何列出所有强制查询计划并取消一个

Joh*_*ann 6 sql-server ssms execution-plan sql-server-2016 query-store

使用 SSMS 2016 查询存储,几周前我强制特定查询使用特定计划。现在我时不时地会遇到错误:

由于此查询中定义的提示,查询处理器无法生成查询计划。重新提交查询而不指定任何提示且不使用 SET FORCEPLAN

我假设SET FORCEPLAN是自动传递的,因为执行该查询的代码不会自动传递。所以我想重新审视我的强制计划,也许取消它。但我在查询存储中找不到该查询了。

因此我的问题是:有没有一种方法可以列出所有强制查询计划,然后如何取消一个?

Sco*_*red 6

您应该能够通过查询此目录视图 ( sys.query_store_plan ) 过滤is_forced_plan = 1 来获取有关“强制”计划的信息。页面底部是指向查询存储的其他有用目录视图的链接。

此存储过程 ( sp_query_store_unforce_plan ) 允许您“取消强制”计划。