将 SQL Server 2014 升级到 2016 后,服务器每隔几个小时就会不断重置缓存的执行计划和dm*
视图(如dm_exec_query_stats
)等
至于如果有人执行DBCC FREEPROCCACHE
和DBCC DROPCLEANBUFFERS
手动(除了没人做,它会自动发生)。
同一个数据库在 SQL Server 2014 和 Windows Server 2012 上运行良好,但在迁移到 SQL Server 2016(和 Windows Server 2016)后事情就变糟了
事情我检查:数据库并没有具备“自动关闭”标志。SQL 服务器ad hoc optimized
设置为true
(我认为它会有所帮助,但它没有)。“查询存储”为“关闭”。服务器有 16 GB 内存。
“SQL Server 日志”中也没有任何帮助。只是每周备份消息...
我还检查了这篇文章https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-set-options(向下滚动到“示例”部分,就在上面它)有自动清除计划的情况列表。这些都不适用。
不幸的是,这些建议都没有帮助。授予 LPIM 权限,检测和修复为同一查询生成大量计划的非参数化查询,降低“最大服务器内存”......计划不断随机重置,从每几个小时到每 5-10 分钟。如果服务器“处于内存压力之下”,为什么 2014 版本在同一台机器上运行良好。
这是请求的 sp_Blitz 输出
**Priority 10: Performance**:
- Query Store Disabled - The new SQL Server 2016 Query …
Run Code Online (Sandbox Code Playgroud) 有什么方法可以完全禁用 FT 日志?我花了几个小时谷歌搜索 - 没有运气。
我每秒钟都会收到大量的“信息”消息。
2020-01-01 10:43:16.48 spid33s Informational: Full-text Auto population initialized for table or indexed view xxx
2020-01-01 10:43:23.48 spid34s Informational: Full-text Auto population completed for table or indexed view zzz
2020-01-01 10:43:23.48 spid36s Informational: Full-text Auto population completed for table or indexed view xxx
2020-01-01 10:43:24.64 spid12s Informational: Full-text Auto population initialized for table or indexed view xxx
2020-01-01 10:43:25.64 spid12s Informational: Full-text Auto population completed for table or indexed view xxx
2020-01-01 10:43:26.58 …
Run Code Online (Sandbox Code Playgroud)