現象
たとえば次のようなシナリオを考えてみます。
- tempdb データベースを頻繁に使用するアプリケーションがあるか、特定の tempdb データベース ワークロードがあります。
- Microsoft SQL Server 2016 以降のバージョンにアップグレードすると、PFS ページの競合が発生するようになります。
- tempdb データベース のベスト プラクティス に従い、いくつかのデータ ファイルを追加します。
このシナリオでは、大量の PFS ページの競合が継続し、システムのパフォーマンスに影響を与えます。
注釈 ページのマップを 8088 で簡単に分割できる場合は、PFS ページです。 たとえば、ページ 2:3:905856 は tempdb の file_id=3 の PFS です。
解決策
累積的な更新プログラムの情報
この問題は、次の SQL Server の累積的な更新プログラムで修正されています。
SQL Server 2017 の累積的な更新プログラム 7
SQL Server 2016 SP2 の累積的な更新プログラム 1
SQL Server 2016 SP1 の累積的な更新プログラム 9
SQL Server の累積的な更新プログラムについて:
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。
SQL Server 2017 の最新の累積的な更新プログラム
SQL Server 2016 の最新の累積的な更新プログラム
この問題は、次の資料で説明されている修正プログラムで修正されています。
4099490 SQL Server 2016 SP1 用のオンデマンド修正プログラム更新パッケージ
この修正プログラムは、すべての tempdb データ ファイルへのラウンドロビン割り当てに加えて、同じデータ ファイル内の複数の PFS ページでラウンドロビン割り当てを実行することにより、PFS ページの割り当てを改善します。 したがって、データ ファイルに含まれる PFS データ ページが多く、データ ファイルが多いほど、割り当ての分散が良くなります。
注釈 データが tempdb データベース ファイル内の PFS 間隔に分散されるようになったため、 データベースの圧縮 などの操作はよりリソースを大量に消費します。 ただし、通常の操作中に tempdb を圧縮することは一般的に推奨されません。
SQL Server の Service Pack の情報:
この更新プログラムは、次の SQL Server 用 Service Pack で修正されています。
Service Pack 3 for SQL Server 2014
SQL Server の Service Pack について:
Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 マイクロソフトでは、最新の Service Pack と、その Service Pack 用の最新の累積的な更新プログラムを適用することをお勧めします。 最新の Service Pack をインストールする前に、以前の Service Pack をインストールする必要はありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の資料の表 1 を参照してください。
SQL Server とそのコンポーネントのバージョン、エディション、および更新プログラムのレベルを確認する方法
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料