1

Google で調べたところ、フィル ファクターが 0 の場合、インデックス ページの 100% のスペースが使用されることがわかりました。それ以外の場合は、フィル ファクターを指定する必要があります。

専門家への私の質問は次のとおりです。

  1. インデックスの効率を最大化するには、空白のままにしておく必要がありますか?
  2. 一部のデータベースで、一部のインデックスについて記載されているフィル ファクターが 80、85、90、100 であることがわかりました。では、フィル ファクターを 80 または 90 と指定する必要があるのはいつでしょうか。

    fill_factor <> 0 である sys.indexes から fill_factor,* を選択します。

4

1 に答える 1

1

デフォルトの fillfactor はそのままで 100 です (変更されていない場合)。fillfactor が 0 の場合、DBCC DBREINDEX はインデックスに指定された最後の値を使用します。

Fillfactor は、インデックスの作成、再構築、またはデフラグ時に、インデックスのパフォーマンスとデータ ストレージを改善するように設計されています。fillfactor を設定することにより、各ページにデータを格納する領域の割合を指定し、将来のテーブルの拡大に備えて各ページに空き領域を確保します。たとえば、fillfactor が 80 の場合、各ページの 20% が空のままになり、新しいレコード用のスペースが提供されます。そのスペースが使い果たされると、ページ分割が発生します。

Microsoft は、ほとんどの場合、既定の fillfactor を使用することをお勧めします。ただし、テーブルの使用方法がわかっている場合は、テーブルを変更できます。読み取り専用ではないテーブルの fillfactor を 100 にすると、INSERT/UPDATE ですぐにページ分割が発生するため、100 は読み取り専用テーブルにのみ適しています。大量の書き込みがあるテーブルは、50 ~ 70% の間のどこかにある必要があります。他のすべてのテーブルは、INSERT および UPDATE ではなくほとんどが SELECT である場合、約 80 ~ 90 である必要があります。

ページ分割についてよく読んでください。また、インデックスを再構築するスケジュールを立てます。また、各インデックスをクラスター化するかどうかも考慮する必要があります。たとえば、断片化の割合が低いクラスター化インデックスをスケジュールから除外して、時間を節約できます。

参考文献:

于 2016-06-02T05:47:15.637 に答える