通常、テーブルにインデックスを作成するときに、テーブルの使用方法(多くの読み込みまたは多くの書き込み)に基づいて、Fill Factor
が何を推測するのかを推測します。どのようにしてSQLフィル係数値を測定するのですか
より正確なFill Factor
の値を決定する科学的な方法はありますか?
通常、テーブルにインデックスを作成するときに、テーブルの使用方法(多くの読み込みまたは多くの書き込み)に基づいて、Fill Factor
が何を推測するのかを推測します。どのようにしてSQLフィル係数値を測定するのですか
より正確なFill Factor
の値を決定する科学的な方法はありますか?
現実的な操作の大きなリストを実行し、さまざまな操作のIOキューを調べることができます。
各行のサイズや書き込みの回数など、多くの変数がそれを管理しています。
基本的には:高充填率=速い読み込み、低=速い書き込み。
しかし、ほとんどすべての書き込みが最初に検索する必要がある行のサブセットになるため、それほど単純ではありません。
たとえば、ページ分割が非常に起こりにくい場合でも、塗りつぶし係数を10%に設定し、変更する行を見つけるのに10倍の時間がかかります。
一般に、フィルファクタは70%(非常に高い書き込み)から95%(非常に高い読み出し)です。
これはちょっとした芸術形式です。
フィルファクタを考える良い方法は、アドレス帳のページのように見えます。アドレスをより厳密にパックすると、アドレスを変更するのが難しくなりますが、ブックがスリムになります。私はmy blogでそれをよりよく説明したと思う。
パフォーマンスが改善された場合、スキーマの調整、クエリの最適化、および適切なインデックスのカバレッジの確保が、他の場所での作業に比べてはるかに優れているという意見になりがちです。塗りつぶし係数は、がを知っているときに心配する必要があるものの1つです。私はそれを言うことができる誰も知らない。