30 ALTER INDEX REBUILDを使用して、インデックスの断片化を削除しました。場合によっては、REBUILDはこのフラグメンテーションを削除しないようです。REBUILDがフラグメンテーションを削除しない理由は何ですか?これは特に小さなインデックスで発生するようです。 sql-server index clustered-index fragmentation — ジュララ ソース 関連:dba.stackexchange.com/questions/5365/... — マーク・ストーリー・スミス
39 インデックスが非常に小さい場合(8ページ未満と思われます)、混合エクステントが使用されます。したがって、住宅のエクステントには複数のインデックスからのページが含まれるため、断片化がまだ残っているように見えます。 このため、また断片化が通常無視できるほど小さいインデックスでは、特定のページしきい値でのみインデックスを再構築する必要があります。最小1000ページの断片化されたインデックスを再構築することをお勧めします。 — トーマス・ストリンガー ソース
34 これは、非常に大きなインデックスでも発生する可能性があります。 約7億行のテーブルにいくつかのインデックスがありましたが、約30%未満ではデフラグできませんでした。この問題は、インデックスを連続して配置するのに十分なデータベース内の連続した空き領域ではありませんでした。 最適化されない非常に大きなインデックスを回避するには、新しいデータベースのサイズを事前に設定し、すべてのオブジェクトをそのDBに移動してから、インデックスを再作成します。 — JNK ソース
1 私はこの問題にしばらく苦労してきましたが、JNK Iのように、問題はディスク上の空き領域と物理的な断片化が続くことでした。ただし、SSD SANでそれをどうしますか? index_level = 0のみを含めることは良い考えかもしれないことがわかりました。これがオラ・ハレングレンのスクリプトで行われている方法です。 別の改善は行うことです REBUILD With (maxdop = 1) これにより、最大限の改善が保証されます。 — vikjon0 ソース