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