2016-06-02 2 views
1

私はgoogleをチェックして、fill factorが0の場合はインデックスページの100%スペースを使用することがわかりました。それ以外の場合は、塗りつぶし係数を指定する必要があります。専門家へDBCC DBREINDEXの塗りつぶし係数はいつ指定しますか?

私の質問は以下のとおりです。

  1. は、我々は最大のインデックス効率のために空白のままにすべきか?
  2. いくつかのデータベースでは、いくつかのインデックスでフィラーが80,85,90,100と記載されています。ですから、いつfill factorを80または90として指定する必要がありますか?

    選択fill_factor、* fill_factor <> 0

+0

[ここ](https://msdn.microsoft.com/en-us/library/ms177459.aspx)あなたが見つかりますあなたが知る必要があるのはすべて。 – shadow

+0

私の答えはあなたを助けましたか?もしそうなら、答えとしてマークしてください。 – clairestreb

答えて

1

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

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

ほとんどの場合、既定のfillfactorを使用することをお勧めします。ただし、テーブルの使用方法が分かっている場合は、テーブルを変更することができます。読み取り専用ではない表のfillfactorが100の場合、INSERT/UPDATEでページ分割が直ちに発生するため、100は読取り専用表にのみ適しています。書込み量が多い表は、50〜70%の間にあるはずです。 INSERTおよびUPDATEdではなく、ほとんどすべてSELECTされている場合は、他のすべてのテーブルは80および90前後になります。

ページ分割についてお読みください。また、インデックスを再構築するためのスケジュールを確立します。また、各索引をクラスタ化するかどうかを検討する必要があります。たとえば、断片化率の低いクラスタード・インデックスは、時間を節約するためにスケジュールから除外できます。

いくつかの参照:

関連する問題