症状
查询存储自动数据清理在 SQL Server 2016 版本(企业版和开发人员版除外)上可能会失败。 因此,如果未手动清除数据,查询存储使用的空间将随着时间的推移而增长,直到达到配置的限制。 如果此问题未得到解决,则为错误日志分配的磁盘空间也会填满,因为每次尝试运行清理都会生成一个转储文件。 清理激活周期取决于工作负载频率。 但是,它不超过 15 分钟。
解决方法
此问题的修补程序包含在 SQL Server 的以下累积更新中:
关于 SQL Server 的累积更新
SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
解决方法
如果计划在企业版和开发人员版以外的版本上使用查询存储,若要解决此问题,必须显式关闭清理策略。 可以从“数据库属性”页面) SQL Server Management Studio (或使用以下 Transact-SQL 脚本执行此操作:
ALTER DATABASE database_name SET QUERY_STORE (OPERATION_MODE = READ_WRITE, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 0) , SIZE_BASED_CLEANUP_MODE = OFF)
此外,请考虑手动清理选项以防止查询存储转换为只读模式。 例如,运行以下查询来定期清理数据空间:
ALTER DATABASE database_name SET QUERY_STORE CLEAR
此外,定期运行以下查询存储存储过程来清理运行时统计信息、特定查询或计划:
- sp_query_store_reset_exec_stats
- sp_query_store_remove_plan
- sp_query_store_remove_query
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料
了解 Microsoft 用于描述软件更新的 术语 。