現在、新しいデータベースを作成中であり、以前は単一のデータファイルと単一のログファイルしか使用していませんでした。複数のデータファイルの利点についてオンラインでいくつかの調査を行いましたが、1つのディスク上の複数のデータファイルの利点に関する意見が混同されています。したがって、私の質問は、私が使用できる唯一のディスクがSANディスクの場合、データを4つの個別のファイルに分割することで、マルチスレッド/並列処理などのパフォーマンス上の利点が見られますか?単一のファイルでより良いですか?
また、インデックス(およびおそらくアーカイブテーブル)を、同じディスク上の別々のファイルにある独自のファイルグループに分離することで、パフォーマンス上の利点はありますか?これは管理上の利点のみを提供しますか?
ありがとう!
単一のLUN上の複数のtempdbファイルでさえ、LUNごとに1つのtempdbと比較する場合の最後の手段となるはずです。 LUNに複数のデータベースファイルがあり、それらの自動拡張が許可されている場合、その内容はファイルシステムとストレージにインターリーブされます。読み取り要求または書き込み要求で両方を強くヒットし、IOウィービングまたはディスクヘッドスラッシングとして知られる状況が発生します。書き込みは通常キャッシュされますが、書き込みはioウィービングの影響を受けません。最終的に書き込みはキャッシュからデステージする必要があります。tempdbがクエリのスピルによって頻繁に使用される場合、多数の順次書き込みアクティビティが発生します。複数のtempdbを同じLUNに配置すると、異なる場所に順次書き込みアクティビティの複数のストリームが存在する可能性がありますすべて同じLUNキューを介してアクセスされるストレージ上部に導入されたテーブルスキャンなどのシーケンシャルな読み取りでは、読み取りのレイテンシがランダムではない場合があります。
ユーザーデータベースの単一のLUNに複数のデータファイルを配置しても、おそらく何のメリットもありません。
TempDBは、通常の操作中にtempdbデータベース内に作成される大量のオブジェクトのため、特別なケースです。