0

1 時間前に単純な小さなテーブル (フィールドが 8 つだけ) があります。テーブルのインデックスの 1 つを再構築し、断片化を 0% にリセットしましたが、現在は最大 38% です。

テーブル自体には 400,000 レコードが含まれていますが、インデックスを再構築してから挿入されたのは 158 個の新しいレコードのみです。レコードの更新はありませんが、おそらくいくつかの削除が行われています。

インデックスが断片化されているのはなぜですか?

インデックスは一意ではなく、1 つのフィールドだけでクラスター化されていません。

データベースは SQL Server 2005 で実行されていますが、互換性レベルは SQL Server 2000 です。

ありがとう

4

2 に答える 2

3

再構築されたときに、そのインデックスの FILL FACTOR を確認します。充填率が高すぎる可能性があります。この場合、インデックスの再構築時にインデックス ページがいっぱいになり、新しい行を追加するとすぐにページ分割 (断片化) が発生し始めます。再構築時に FILL FACTOR を減らすと、ページ分割が開始される前に、より多くの新しいレコードをインデックス ページに挿入できます。

http://msdn.microsoft.com/en-us/library/aa933139%28SQL.80%29.aspx

于 2009-08-12T14:43:25.093 に答える
2

フィル ファクター 0 は 100 に等しいため、挿入する余地はありません。挿入する場合は、より低いフィル ファクターを選択する必要があります。

于 2009-08-12T14:53:04.500 に答える