現象
既定では、2016 年と 2017 年の tempdb データベースの間接Microsoft SQL Serverが有効になっています。 負荷の高い状況では、"非収穫スケジューラー" エラーが発生し、sys.dm_os_spinlock_stats DMV は DP_LIST スピンロックタイプのスピンロックの高い構成を示します。
解決方法
この修正プログラムは、次の更新プログラムと Service Pack に含まれています。
SQL Server 2016 の Service Pack 情報
ビルドSQL Serverについて
新しいビルドには、SQL Server以前のビルドに含まれている修正プログラムとセキュリティ修正プログラムが含まれています。 最新の累積的な更新プログラムをインストールすることをお勧SQL Server。
サービス パックは累積的です。 Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 お勧めは、最新の Service Pack と、その Service Pack の最新の累積的な更新プログラムを適用する方法です。 最新の Service Pack をインストールする前に、以前の Service Pack をインストールする必要は一方ではありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の記事の表 1 を参照してください。
回避策
この問題を回避するには、次のいずれかのデータ定義言語 (DDL) ステートメントを使用して、tempdb データベースの間接チェックポイントをオフにします。
これは、次の方法で行う必要があります。
-
modeldb データベース (新しいデータベースの既定値も変更されます) で、次のステートメントを実行
ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES -
または、次のステートメントを使用して SQL Server Agent を使用してインスタンスを起動する度に tempdb データベースに
直接アクセスALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES -
または、次のステートメントを使用して、tempdb データベースに対して定期的に手動で確認
use tempdbgo checkpointgo
さらに、TF 3468 を使用して tempdb の間接チェックポイントを無効にできます。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
Microsoft がソフトウェア 更新プログラムについて 説明するために使用する用語について説明します。 更なる詳しい情報は以下の文献を参照してください: