Aracılığıyla paylaş


Uzatma Tahsisatları ve boş alan yönetme

The SQL Server data structures that manage extent allocations and track free space have a relatively simple structure.Bu, aşağıdaki faydaları vardır:

  • Boş disk alanı bilgileri densely dolu, böylece daha az sayıda sayfa içeren bu bilgileri.

    Bu yükleme bilgilerini almak için gerekli olan disk okuma miktarını azaltarak hızını artırır.Bu da ayırma sayfalarının bellekte kalır ve daha fazla okuma gerektiren, şansını artırır.

  • Ayırma bilgilerin çoğu değil zincirleme birlikte.Bu yükleme bilgilerini Bakımı kolaylaştırır.

    Her sayfa ayırma veya miktarda kaldırma kolayca gerçekleştirilebilir.Bu, ayırma veya sayfa ayırması eşzamanlı görevler arasındaki Çekişme azaltır.

Uzatma Tahsisatları yönetme

SQL Server alanların ayrılması kaydetmek için iki tür ayırma eşlemeleri kullanır:

  • Global Allocation Map (GAM)

    Hangi alanların tahsis edilmiş GAM sayfalarını kaydeder.Her GAM 64.000 kapsam ya da neredeyse 4 GB veri içerir.GAM, kapsadığı aralıkta her kapsam için bir bit vardır.Biti 1 ise, kapsam biti 0 ise; ücretsizdir kapsam tahsis edilir.

  • Paylaşılan Global Allocation Map (SGAM)

    SGAM sayfaları hangi alanların karışık kapsam kullanılmakta kayıt ve de kullanılmayan en az bir sayfa vardır.Her SGAM 64.000 kapsam ya da neredeyse 4 GB veri içerir.SGAM da kapsayan zaman aralığını her kapsam için bir bit vardır.Biti 1 ise, kapsam kullanılmakta olan bir karma olarak kapsam ve boş bir sayfa vardır.Biti 0 ise, kapsam bir karışık kullanılan veya bir karışık olduğu ve tüm sayfaları kullanılır.

Her kapsam GAM ve SGAM göre geçerli kullanımı, küme aşağıdaki bit deseni vardır.

Geçerli kapsam kullanımı

Bit GAM ayarlama

Bit SGAM ayarlama

Kullanılmayan boş

1

0

Tek tip kapsam, veya tam karışık kapsam

0

0

Karma kapsam boş sayfa

0

1

Bu basit kapsam yönetimi algoritmaları neden olur.Tek tip bir kapsam ayırmak içinDatabase Engineiçin 1 bit GAM arar ve 0 olarak ayarlar.Bir karma bulmak için kapsam boş sayfa,Database EngineArama SGAM için 1 bit.Bir karma ayrılacak kapsam,Database Engineiçin 1 bit GAM arar, 0 olarak ayarlar ve sonra da buna karşılık gelen 1'e SGAM bit ayarlar.Bir kapsam kaldırmak içinDatabase EngineGAM biti 1 olarak ayarlandığında sağlayıp SGAM biti 0 olarak küme.Gerçekten dahili olarak kullanılan algoritmalarDatabase Enginene bu konuda açıklanan daha karmaşık olduklarındanDatabase Enginedağıtan verileri eşit bir veritabanı.Ancak, hatta gerçek algoritmaları kapsam ayırma bilgilerinin zincirlerini yönetmek sağlayarak değil basitleştirilmiştir.

Boş alan izleme

Tahsisat Durumu her sayfanın bir sayfa tahsis edildi ve boş alan miktarını her sayfada sayfa boş alan (PFS) sayfaları kaydedin.PFS her sayfa, sayfa ayrılmış olup olmadığını ve boş olup olmadığını, yüzde 1-50, yüzde 51-80 oranında, tam bunu yüzde 81'i için 95 tam kaydetme veya yüzde 96-100 bayt içerir.

Bir nesneye bir ölçüde ayrılmış sonraDatabase Enginehangi ölçüde sayfalarında, ayrılmış veya boş bir kayda PFS sayfalar kullanır.Bu bilgi kullanılır,Database Engineolduğu tahsis yeni bir sayfa.Sayfasındaki boş alan miktarını, yalnızca yığın ve metin/resim sayfalarını korunur.Kullanıldığı,Database Enginetutmak için kullanılabilir boş alan içeren sayfa bulmak var yeni eklenen bir satırın.Yeni bir satır eklemek istediğiniz yere göre dizin anahtar değerlerinin ayarlandığı için dizin sayfa boş alanı, izlenecek, gerektirmez.

PFS ilk sayfasını (sayfa numarası 1) bir veri dosyasında dosya başlığı sayfadan sonra sayfadır.GAM sayfa (2 sayfa sayısı) ve bir SGAM sayfasını (sayfa 3) sonra gelir.Var. PFS sayfa yaklaşık 8000 sayfa boyutu PFS ilk sayfadan sonraBaşka bir GAM 64.000 sayfa alanları sayfa 2 ilk GAM sayfasında sonra ve başka bir SGAM sayfasının 64.000 kapsam 3 sayfada ilk SGAM sayfadan sonra vardır.Tarafından kullanılan sayfa sırasını aşağıda gösterilmiştirDatabase Enginetahsis ve yönetimi alanları.

Pages used to allocate and manage extents