SQL Fill Factor 値を測定するにはどうすればよいですか
-
08-06-2019 - |
質問
通常、テーブルにインデックスを作成するときは、通常、何があるか推測します。 Fill Factor
テーブルがどのように使用されるか (多数の読み取りまたは多数の書き込み) の知識に基づいた推測に基づく必要があります。
より正確に判断するためのより科学的な方法はありますか Fill Factor
価値?
解決
実際の操作の大きなリストを実行して、さまざまなアクションの IO キューを確認してみるとよいでしょう。
各行のサイズや書き込みと読み取りの数など、それを制御する変数は多数あります。
基本的に:フィルファクターが高い = 読み取りが速く、低い = 書き込みが速い。
ただし、ほとんどすべての書き込みは、最初に検索する必要がある行のサブセットに対して行われるため、それほど単純ではありません。
例えば:FILL FACTOR を 10% に設定すると、ページ分割が発生する可能性は非常に低いにもかかわらず、単一行の更新ごとに、変更している行を見つけるのに 10 倍の時間がかかります。
一般に、フィルファクタは 70% (非常に高い書き込み) ~ 95% (非常に高い読み取り) です。
それはちょっとした芸術形式です。
フィルファクターは、アドレス帳のページとして考えるのが良いと思います。アドレスをより密に詰め込むほど、アドレスを変更するのは難しくなりますが、本は薄くなります。でもっとうまく説明できたと思います 私のブログ.
他のヒント
私は、パフォーマンスの向上を求めるのであれば、スキーマの調整、クエリの最適化、適切なインデックス カバレッジの確保など、他のことに時間を費やしたほうがずっと良い、と考えがちです。フィルファクターは、次の場合にのみ考慮する必要があるものの 1 つです。 知る システム内の他のすべてが最適であることを確認します。そんなこと言える人を私は知りません。