症状
在除企业版和开发人员之外的 SQL Server 2016 版本中,查询存储自动数据清理可能失败。 因此,如果未手动清除数据,则查询存储使用的空间将随着时间的推移而增大,直到达到配置的限制。 如果此问题未得到解决,则分配给错误日志的磁盘空间也将填满,因为每次尝试运行清理都将生成转储文件。 清理激活周期取决于工作负荷频率。 但是,它不超过15分钟。
解决方案
针对此问题的修复包括在 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 清除此外,定期运行以下查询存储过程以清理运行时统计信息、特定查询或计划:
-
sp_query_store_reset_exec_stats
-
sp_query_store_remove_plan
-
sp_query_store_remove_query
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语 。