重新加载 SQL 执行计划?



如果数据库启用了查询存储,SQL 2017 是否仍具有单独的执行计划,这些计划会在实例重新启动时清除并随后重建,还是从查询存储加载?

看看下面的类比,它与SQL Server 2017查询存储术语相关联。

数据库中的查询存储大小会增长,直到达到限制。发生这种情况时,查询存储会自动将操作模式更改为只读并停止收集新数据,这意味着性能分析不再准确

SQLServer 2016 (13.x( 和 SQL Server 2017 (14.x( 中的默认值为 100 MB。从 SQL Server 2019 (15.x( 开始,默认值为 1 GB。

重要!

最大大小 (MB( 限制未严格执行。仅当查询存储将数据写入磁盘时,才会检查存储大小。此间隔由"数据刷新间隔(分钟("选项设置。如果查询存储超出了存储大小检查之间的最大大小限制,它将转换为只读模式。如果启用了基于大小的清理模式,则还会触发强制实施最大大小限制的清理机制。

过时查询阈值(天(

基于时间的清理策略,用于控制持久运行时统计信息和非活动查询的保留期(以天表示(。默认情况下,查询存储配置为将数据保留 30 天,对于你的方案来说,这可能会过长。

避免保留不打算使用的历史数据。这种做法减少了对只读状态的更改。查询存储数据的大小以及检测和缓解问题的时间将更可预测。

将查询存储与弹性池数据库配合使用

结论:只要已启用查询存储并且未达到最大大小或保留期的限制(取决于查询存储清理策略配置(,则当任何执行计划正在运行时,SQL Server 将从查询存储加载持久运行时统计信息和非活动查询。因此,当 SQL Server 实例启动/重新启动时,查询存储清理没有直接影响。

希望这有帮助!

最新更新