適用先
SQL 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の累積的な更新プログラムで修正されました。

2016 累積更新プログラム 2 (CU2) SQL Server適用すると、SECURITY_CACHE名とCMED_HASH_SET名がそれぞれLOCK_RW_SECURITY_CACHELOCK_RW_CMED_HASH_SETに変更されます。 CU2 が適用されると、値は次のように表示されます。 更新

SQL Serverの各新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。

SQL Server 2017 の最新の累積的な更新プログラム

SQL Server 2016 の最新の累積的な更新プログラム

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。