Applies ToSQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2017 on Windows (all editions)

現象

既定では、Microsoft SQL Server 2016 および 2017 の tempdb データベースに対して間接チェックポイントが有効になっています。 負荷の高い状況では、"非生成スケジューラ" エラーが発生する可能性があり、sys.dm_os_spinlock_stats DMV では、DP_LISTスピンロックの種類に対する昇格されたスピンロックの競合が表示されます。

解決方法

この修正プログラムは、次の更新プログラムとサービス パックに含まれています。

SQL Server 2016 のサービス パック情報

       SQL Server 2016 用 Service Pack 2

ビルドSQL Serverについて

SQL Serverの各新しいビルドには、前のビルドにあったすべての修正プログラムとセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムをインストールすることをお勧めします。

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

SQL Server 2016 の最新ビルド

サービス パックは累積的です。 Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 このサービス パックの最新の Service Pack と最新の累積的な更新プログラムを適用することをお勧めします。 最新のサービス パックをインストールする前に、以前のサービス パックをインストールする必要はありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の記事の表 1 を参照してください。

SQL Server とそのコンポーネントのバージョン、エディション、および更新プログラムのレベルを確認する方法

回避策 

この問題を回避するには、次のいずれかのデータ定義言語 (DDL) ステートメントを使用して、tempdb データベースの間接チェックポイントをオフにします。

これは次のように行う必要があります。

  • modeldb データベースで (新しいデータベースの既定値も変更されます)、次のステートメントを実行しますALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES

  • または、次のステートメントを使用してSQL Server エージェントを使用してインスタンスが起動するたびに、tempdb データベース上で直接実行します。ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES

  • または、tempdb データベースに対して手動チェックポイントを定期的に発行します。use tempdb#x1 go  

    さらに、TF 3468 を使用して tempdb の間接チェックポイントを無効にすることができます。

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

関連情報

Microsoft がソフトウェア更新プログラムの説明に使用する 用語について説明します。 更なる詳しい情報は以下の文献を参照してください:

ヘルプを表示

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

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

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。