私はオンラインで本をトロールし、リーフページ(SQL Server 2000および2005)で物理的にどのフィルファクターが存在するかを調べようとグーグルの呪文を唱えてきました。
インデックスが作成されたときにページに残されたスペースの量は理解していますが、私が見つけていないのは、そのスペースが実際にどのように残されているかです。つまり、ページの終わりに向かって1つの大きなチャンクであるか、そのデータにはいくつかのギャップがあります。
たとえば、[簡単にするために]、ページが100行しか保持できないと仮定します。フィルファクターが75%であると記載されている場合、これは、ページの最初(または最後)の75%がデータであり、残りが空いていることを意味しますか、それとも4行ごとに空いていることを意味します(つまり、ページは次のようになります:データ、データ、データ、無料、データ、データ、データ、無料、...)。
これの長所と短所は、クラスター化されたインデックスを持つテーブルに行を挿入するときに発生する物理操作に関して正確に何が起こるかを把握していることです。挿入は行の最後では発生しません。 。ページ全体に複数のギャップが残っている場合、挿入に対応するために移動する必要のある行数が最小限に抑えられるため、挿入による影響は最小限に抑えられます(少なくともページが分割されるまで)。ギャップがテーブル内の1つの大きなチャンクにある場合、行を調整するためのオーバーヘッドは(少なくとも理論的には)大幅に大きくなります。
誰かがMSDNリファレンスを知っている場合は、それを教えてください!現時点では見つかりません(まだ探しています)。私が読んだことから、それは多くのギャップがあることを意味します-しかし、これは明確に述べられていないようです。