- ホットスポットとは何ですか?
アーロンは正しいですし、彼が上で言ったことを再ハッシュするつもりはありませんが、それはディスクIOだけではありません。ほとんどの人がTempDBで問題を抱えている主な部分は、特定の追跡構造の競合によるものです。
複数のtempdbファイルを使用すると、割り当て間で比例したフィルおよびラウンドロビンアルゴリズムが効果的に「公平」に実行されるため、割り当てのない新しいファイルを追加すると、少しばかりスローされます。PAGELATCH_*
上記の新しいファイルを待機し、他のファイルの多くまたはいずれも待機していない場合は、「チキンリトル」警告(以下の製品アップデートを参照)であることに同意しません。これは一般に、 TempDBアクティビティが高く、すでに複数のファイルがあるシステムで発生します。
SQL Server 2019には、基盤となるシステムテーブルの一部をインメモリテーブルに変更するオプションがあり、メモリ内オブジェクトはディスクベイクテーブルとは異なる方法で割り当てられるため、改善できるオプションがあることに注意してください。ディスクベースのテーブルは、私たち全員が長年にわたって取り組んできた伝統的なテーブルです。SQL Server 2014では、メモリ最適化テーブルが導入されました。SQL Server 2019は、メモリ最適化テーブルの一部の割り当てメタデータを処理できます。
SQL Server 2019では、同時PFS変更を支援するために別の変更が行われました。これは一般に、割り当てのメモリ内構造の競合がPAGELATCH_*
待機しているものです。
- ホットスポットはtempdbの状況をさらに悪化させますか?
私見は何もありません。あり ただし、データ変更率の面で非常に忙しいユーザーデータベースも同様に悪いです。TempDBだけに限定されません。
- DBのどの特定のものがさらに悪化しますか?
アーロンのアナロジーが本当に好きです!それが何が起こっているかの本質です。実際に悪化するのは、データベース内のオブジェクトのスペースの割り当てと追跡です。ユーザーデータベースの大部分が静的(変更率が低い)であるか、TempDBが実際に使用されていない場合、何も気付かないでしょう。ただし、かなりビジーなサーバーの場合は、ページラッチの待機を開始または悪化させる可能性があり、コンボイのブロックにつながる可能性があります。
アーロンは、以前のバージョンには均一なエクステントが使用され、ファイルグループ内のすべてのファイルが一緒に成長することを確認するためのトレースフラグがあることを既に指摘しました(アーロンは2016+のNOPである1117と1118を指摘しています)。もう1つ指摘したいのは、これはTempDBだけでなく任意のデータベースのためのものであり、物理レイアウトはニーズに応じて検討する必要があるということです。
これは、ホットスポッティングの問題だけでなく、バックアップ/復元、ファイル管理、ファイルシステムメタデータの断片化など、システムの他の部分にも適用できます。これらはすべて、複数のファイルを持つことで役立ちます。
waitresource
PFSページ(ページ1、次に8088ページごと)を検索することにより、割り当て構造の競合を確認できます。すべてが同じファイル(2:file:page)にある場合は、これが発生していることがわかります。