症状

使用 Microsoft SQL Server 2016 (或 2017) 的新实例或从早期版本的 SQL Server 升级的 SQL Server 2016 (或 2017) 实例时,由于 CPU 使用率高,会遇到性能问题。 此外,如果查询sys.dm_os_spinlock_stats表,则会发现表) 中的其他行相比,SECURITY_CACHE (安全缓存) 和 CMED_HASH_SET (元数据) 缓存 ( (行的自旋列中具有较高的值。 例如,你注意到以下值。

错误

原因

由于高度并发系统中的自旋锁争用率较高,因此会出现此问题。 在这些操作系统中,多个 CPU 线程在定期在循环中运行以确定资源是否可用,而不是立即生成时,争用资源并以延长间隔旋转。 当多个 CPU 线程在一 段时间内 (循环) 资源而不产生结果时,这会导致 CPU 使用率和性能问题。

解决方法

以下SQL Server累积更新修复了此问题:

备注 应用 SQL Server 2016 累积更新 2 (CU2) 后,SECURITY_CACHECMED_HASH_SET名称将分别更改为LOCK_RW_SECURITY_CACHELOCK_RW_CMED_HASH_SET。 应用 CU2 后,值如下所示。

更新

SQL Server的每个新的累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:

2017 SQL Server的最新累积更新

SQL Server 2016 的最新累积更新

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?

谢谢您的反馈!

×