服务器重新启动后查询存储强制计划是否仍然存在?

ada*_*m.g 5 sql-server sql-server-2016 query-store

想问一下,因为找不到这个信息。

服务器重新启动后查询存储强制计划是否仍然存在?

在哪些情况下,通过查询存储强制执行的计划不会保持有效?

Jos*_*ell 12

是的,强制计划在服务器重新启动时有效。这是因为有关计划强制的信息存储在数据库中,并与其他用户数据一起保留在磁盘上。您可以在查询存储 DMV 中看到这一点:

SELECT * 
FROM sys.query_store_plan
WHERE is_forced_plan = 1;
Run Code Online (Sandbox Code Playgroud)

如果您认为某个计划应该强制执行,但事实并非如此,您可以设置扩展事件会话来query_store_plan_forcing_failed尝试获取有关其失败原因的更多信息。

在什么情况下通过查询存储强制计划不会生效?

计划强制可能不生效的原因列表位于“last_force_failure_reason_desc”下:sys.query_store_plan (Transact-SQL)

其他一些更常见的原因可能是

  • 强制计划已从查询存储数据中清除(由于自动清除或有人手动清除查询存储),或者
  • 查询正在可读辅助服务器上运行(其中计划强制不适用),或者
  • 查询文本的更改方式导致它获得新的查询哈希,因此不再匹配计划强制的目的