TempDBをCPUの数に等しい複数のファイルに分割する


8

記事「SQL Server tempdbのベストプラクティスパフォーマンスの向上ではtempdb、コアの数に等しい数のファイルに分割する必要があることを示唆しています。したがって、4つのコアで4つのファイルを取得します。

ファイル数を増やすことで、SQL Serverが一度にディスクにプッシュできる物理I / O操作の数を増やすことができます。SQL ServerがディスクレベルにプッシュダウンできるI / Oが多いほど、データベースの実行が高速になります。標準データベースでは、SQL Serverは必要な大量のデータをメモリにキャッシュできます。tempdbは書き込みの性質が高いため、メモリにキャッシュする前に、データをディスクに書き込む必要があります。

理論的には良さそうに聞こえますが、それは一般的な最適化として本当にそれでいいのでしょうか IOが非常に高い特定のシステムにのみ適用されるものですか?

回答:


13

マシンコアに対するTempDBデータファイルの数の1/4から1/2倍の比率が長い間推奨されていました...

しかし、今ではさらに良いガイダンスがあります。2011年のPASSで、SQL製品サポートのトップの友人であるボブウォードは、新しい式を採用しました。コアが8個未満の場合は、#files = #coresを使用してください。8コアを超える場合は8ファイルを使用し、インメモリ競合が発生する場合は、一度に4ファイルを追加します。[リンク]

最後の文は常に関連しています。競合がない場合は、なぜファイルを追加するのですか?安全にプレイするために、ほとんどの場合、大部分のビルドの開始点として2〜4個のファイルを追加しますが、それを超えて、測定して反応します。


10

ほとんどの一般的なガイドラインと同様に、これは最も肯定的な見方をすると、単純化しすぎです。よくても、それは良い出発点です(大量のコアで1:1のコア:データファイルの比率を維持していない場合)。

適切な設計と適切なフォローアップ監視およびベースラインの代わりになるものはありません。tempdbに複数のデータファイルを配置する理由は、割り当てページの競合を減らして軽減するためです。この競合を監視し、それに応じてアクションを実行する方法については、多数の公開された投稿があります。以下はいくつかのリソースです:

TempDB競合の分析(パート1)
TempDB競合の
分析(パート2)Tempdb競合の分析
SQL Server 2012拡張イベントを使用したtempdb構成の最適化

しかし、あなたの質問に答えるために、これはtempdbの設定が簡単で忘れられにくい部分ではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.