Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Web - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2017 on Linux

症状

使用 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 的最新累积更新

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。