Nesneleri tarafından kullanılan alanı yönetme
Dizin ayırma Haritası (IAM) sayfa 4 gigabayttan (GB) kısmında bir ayırma birimi tarafından kullanılan bir veritabanı dosyası kapsamlarını eşleştirir.Ayırma birimi, üç türden biridir:
in_row_data
Öbek ya da dizin bölümünü içerir.
lob_data
Büyük bir nesne (LOB) veri türleri gibi tutar xml, varbinary(max), ve varchar(max).
row_overflow_data
Değişken uzunlukta veri depolanan tutar varchar, nvarchar, varbinary, veya sql_variant sütunları 8,060 bayt satır boyut sınırını aşıyor.
Her yığın ya da dizin bölümü en az IN_ROW_DATA ayırma birimi içerir.Ayrıca, bir LOB_DATA veya ROW_OVERFLOW_DATA ayırma birimi öbek ya da dizin şema bağlı de içerebilir.Ayırma birimleri hakkında daha fazla bilgi için bkz: Tablo ve dizin kuruluşu.
Bir IAM sayfa, bir dosya 4 GB aralığında kapsar ve GAM veya SGAM sayfamla aynı Karşılama ' dir.Ayırma birimi kapsamlarını birden fazla dosya veya bir dosyanın birden fazla 4 GB aralık içeriyorsa, birden çok IAM sayfaları, bir IAM zincirdeki bağlı olacaktır.Bu nedenle, her ayırma birimi en az bir IAM sayfa kapsamlarını taşıdığından, her dosya için vardır.Da olabilir IAM birden fazla sayfaya, dosya ayırma birimi için ayrılmış bir dosya üzerinde kapsamlarını aralık IAM sayfa kaydedebilirsiniz aralık aşıyor.
IAM sayfaları ayrılmış olarak her bir ayırma birimi için gerekli ve rasgele dosyasında bulunur.Sistem görünümü sys.system_internals_allocation_unitsIAM ilk sayfasına bir ayırma birimi için bir puan.Bu bir ayırma birimi için tüm IAM sayfaları bir zincirdeki bağlıdır.
Important Note: |
---|
The sys.system_internals_allocation_units system view is for internal use only and is subject to change.Uyumluluk sağlanır. |
Bir IAM sayfası başlangıç kapsamını IAM sayfa tarafından eşlenen kapsamlarını aralık gösteren bir başlık vardır.Bir kapsam içinde her bit gösterir büyük bit eşlem IAM sayfa da var.Ilk kill bitini eşleme, aralık ilk boyutuna gösteren, ikinci bit ikinci kapsam vb. gösterir.Bit 0 ise, onu temsil edecek bir kapsam için ayrılmamış ayırma birimi the IAM sahip.Kill bitini 1 ise, temsil ettiği sürece IAM sayfa olan bir tahsisat birimine tahsis edilir.
Zaman SQL Server Database Engine Yeni bir satır eklemek olan ve geçerli sayfada kullanılabilir alan yok, bu IAM ve PFS sayfalarını ayırmak için , bir sayfayı bulmak için kullandığı veya için yığın veya metin/Görüntü sayfasında, satır tutacak yeterli boş alanı içeren bir sayfa. The Database Engine uses the IAM pages to find the extents allocated to the ayırma birimi. Her bir kapsam için Database Engine bir sayfa kullanılabilir olup olmadığını görmek için PFS sayfaları arar. Bir veritabanında birkaç IAM ve PFS sayfaları şekilde IAM ve PFS her sayfanın veri sayfaları, çok sayıda kapsar.Bu IAM ve PFS sayfaları genellikle bellekte olduðu anlamýna gelir SQL Server arabellek havuzu, bu nedenle, hızlı bir şekilde aranabilir. Dizinler için yeni bir satır, ekleme noktasını dizin anahtar tarafından küme.Bu durumda, daha önce açıklanan arama işlemi gerçekleşmez.
The Database Engine allocates a new kapsam to an ayırma birimi only when it cannot quickly find a sayfa in an existing kapsam with sufficient space to hold the row being inserted. The Database Engine allocates extents from those available in the dosya grubu using a proportional allocation algorithm. Bir dosya grubu iki dosya ve iki kez boş alan olarak diğer varsa, iki sayfa dosyasındaki kullanılabilir alanı olan başka bir dosyadan ayrılan her bir sayfa için paylaştırılacaktır.Bu, her bir dosya grubu dosyasında kullanılan alanı yüzdesi benzer olması gerektiğini anlamına gelir.
See Also