大きな履歴テーブルを分割しようとしています。パーティショニングに慣れていないので、 ファイルとファイルグループ の概念を理解しようとしていました。ファイルグループは、次の3つの方法で設定できます。
1. Each file group on different disk
2. File groups on same disk
3. One file group on one disk with all files
[〜#〜] msdn [〜#〜] は、ディスクにRAIDが設定されている場合、最初の方法で並列I/Oアクセスを利用できるため、パフォーマンスが向上することを示しています。 2番目の方法 パフォーマンス上の利点はありませんが、各ファイルグループがファイルをデータベースの残りの部分から分離するため、メンテナンスが高速になります。 番目の方法 のパフォーマンス上の利点を検索しました。はっきりとした画像が得られませんでした。 3番目の方法では、ファイルがファイルグループに分割されていないため、メンテナンスに影響し、ダウンタイムが増加しますか? 2番目の方法よりもパフォーマンスが向上しますか?
3番目のオプションによって2番目のオプションよりもパフォーマンスが向上することはありません。考えてみると、すべてのユーザーオブジェクトをPRIMARYファイルグループに含めるのとほぼ同じです。 2番目のオプションで達成できるパフォーマンス上の利点の1つは、追加のデータ変更が予想されないことを確認し、インデックスが再構築され、統計が更新されたら、古い履歴ファイルグループに読み取り専用のフラグを立てることです。読み取り専用が実装されると、それらのファイルグループ内のデータをクエリするときにロックが問題になることはありません。
3番目の方法にはパフォーマンス上の利点はありません。私がこれを行うと考えることができる2つの理由があります:
同じディスク上の複数のファイルは、ランダムでシーケンシャルなIOが少なくなるため、パフォーマンスに悪影響を及ぼします。これは、単一のパーティションがファイル間で簡単に分散(断片化)される可能性があるためです。