Doldurma faktörü yalnızca bir dizin oluşturulduğunda veya yeniden oluşturulduğunda devreye girer. Bu işlemler sırasında doldurulan yaprak seviyesi sayfalarının endeksi için tüketim miktarıdır. ( etkilenen sayfa düzeyleri hakkında daha fazla açıklama için aşağıdaki nota bakın )
Veri ( INSERT
, UPDATE
ve / veya DELETE
) için bir DML komutu olduğunda, ilgili etkilenen dizinlere olur. Başka bir deyişle,% 20 dolu bir sayfanız varsa ve bu sayfaya veri eklerseniz, sayfa verilerin% 20'sinden fazlasını içerir (diyelim ki% 35, örneğin sadece uğruna). Başka bir insert yapın, şimdi sayfa% 64 dolu. Dizini yeniden oluşturduğunuzda, yaprak düzeyi sayfaları artık belirttiğiniz alan yüzdesini (veya dolaylı olarak sunucu için varsayılan değeri) içerecektir.
( Not belirttiğiniz olmadığında, PAD_INDEX
olmak ON
, dolgu faktörü sadece yaprak düzey sayfalar uygulanır. Ama ayarladığınızda PAD_INDEX = ON
, dolgu faktörü endeksinin orta düzey sayfaları için dikkate alınacaktır. VarsayılanOFF
)
Doldurma faktörünü ayarlamanın nedeni (varsayılan 100/0 yerine) veri eklerken veya güncellerken sayfa bölünmelerini en aza indirgemenizdir. Ancak unutmayın, hiçbir şey ücretsiz değildir. Doldurma faktörü ne kadar düşük olursa, normalde daha fazla alan verisi kullanılır. Dizinleriniz için% 80 boş sayfa alanı tutarsanız, daha fazla okumaya neden olabilecek nispeten daha fazla disk alanı tüketir.
Anladığım kadarıyla, veri eklendiğinde sayfalardaki verilerin yaklaşık% 20'si olacaktır. Ancak veriler güncellendiğinde, dizinin% 20'sinden fazlasına genişleyecek, doldurulacak ve bir sayfa bölünmesi oluşturulacak, değil mi?
Veri eklendiğinde, uygun sayfadaki uygun dizinlere eklenir. Bu, sayfa tüketiminin doldurma faktöründen daha yüksek olmasına neden olabilir ve büyük olasılıkla çok iyi olur.
Tam dizin sayfasına yeni veriler eklendiğinde sayfa bölünmesi gerçekleşir. SQL Server daha sonra sayfayı böler ve verilerin yarısını tam sayfadan yeni bir sayfaya yerleştirir. Yine, burada doldurma faktörü devreye girmez.
Doldurma faktörünü düşürmenin meşru bir nedeni, sayfa bölünmelerini en aza indirmek, dolayısıyla dizin sayfası parçalanmasını en aza indirmek olacaktır.