2010-12-14 4 views
0

私はまもなく実稼働するSQL Server 2005データベースを備えた新しいシステムに取り組んでいます。私の同僚は最近、私のテーブルにフィルファクタを指定するべきだと私に言いました。現時点では、私のテーブルのいずれにもフィルファクタを指定していません。テーブルに塗りつぶし係数を指定する必要がありますか?

私のアプリケーションは、読み書きが混在したOLTPです。私のテーブルのカップルは "参照"テーブル、すなわち読み取り専用ですが、ほとんどは読み書き可能です。読み取り専用テーブルは容量が小さい(< 50000行)。

SQL Serverドキュメントで読んだことは、テーブルが読み込み専用でない限り、デフォルトのフィルファクタを使用する必要があります。

誰でもこれについて、読み込み専用テーブルと読み書き可能テーブルの両方についてコメントできますか?

答えて

2

いいえ、フィールファクタをテーブルに指定しないでください。充填率は、のビルド(の表の最初のビルド、テーブル、および/またはインデックスのリビルド)を除いて、エンジンによって常に無視されます。したがって、塗りつぶし係数はALTER TABLE ... REBUILDALTER INDEX ... REBUILD操作でのみ指定するのが理にかなっています。

A SQL Server DBA myth a day: (25/30) fill factorも参照してください。

+0

上記のリンクから:fill-factor設定は、インデックスの作成または再構築時にのみ適用されます。 – Steve

+0

これは、最初にインデックスを作成するときに塗りつぶし係数を指定する必要があることを意味しませんか? – Steve

+0

既存のテーブル*に新しいインデックスを作成し、そこにデータがある場合*。新しいテーブルを作成するとき、塗りつぶし係数には適用するデータがないため、無視されます。 –

関連する問題