現象

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 の最新の累積的な更新プログラム

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×