Bir yığın boyutunu tahmin etme
Bir yığın içinde veri depolamak için gereken alanı tahmin etmek için aşağıdaki adımları kullanabilirsiniz:
Bulunan satır sayısını tablo:
Num_Rows = satır sayısıtablo
Kendi depolama için gereken alanı hesaplamak ve sabit uzunluk ve değişken uzunlukta sütun sayısını belirtin:
Alan hesaplama sütun bu grupların her biri veri satırda yer kaplar.Boyutu, sütun veri türü ve uzunluğu belirtimine bağlıdır.Daha fazla bilgi için bkz: Veri türleri (veritabanı altyapısı).
Num_Cols = toplam (sabit uzunluk ve değişken uzunlukta) sütun sayısı
Fixed_Data_Size = tüm sabit uzunluklu sütunları toplam bayt boyutu
Num_Variable_Cols = değişken uzunlukta sütun sayısı
Max_Var_Size = tüm değişken uzunlukta sütun boyutu maksimum toplam bayt
Bölümü null bir bitmap olarak bilinen bu satırın sütun yönetmek için rezerve null atanabilirlik.Boyutu Hesapla:
Null_Bitmap = 2 + ((Num_Cols + 7) / 8)
Yalnızca bir tamsayı kısmını bu ifade kullanılmalıdır.Bir hatırlatıcı atın.
Değişken uzunlukta veri boyutu Hesapla:
Değişken uzunlukta sütunları, tablo, satır içinde sütun depolamak için kullanılan alan miktarını belirleyin:
Variable_Data_Size* = 2 + (Num_Variable_Cols x 2) + *Max_Var_Size
Eklenen bayt ***Max_Var_Size*** olan her değişken uzunlukta sütun izlemek için.Bu formül, tüm değişken uzunluklu sütunları yüzde 100 olduğunu varsayar.Değişken uzunlukta sütun depolama alanı küçük bir yüzdesi kullanılacak öngörüyorsanız, ayarlayabilirsiniz ***Max_Var_Size*** göre toplam tablo boyutunun daha doğru bir tahmin verim için bu yüzde değeri.
<div class="alert">
> [!NOTE]
> <P>Bu birleştirebilirsiniz varchar, nvarchar, varbinary, veya sql_variant sütunları neden olan toplam tanımlanan tablo genişliği aşan 8,060 bayt.The length of each one of these columns must still fall within the limit of 8,000 bytes for a varchar, nvarchar,varbinary, or sql_variant column.Ancak, birleşik genişliklerini de 8,060 bayt sınırını aşıyor olabilir bir tablo.Daha fazla bilgi için bkz: <A href="ms186981(v=sql.105).md">8 kb aşan satır taşma veri</A>.</P>
</div>
Değişken uzunlukta sütun varsa, küme ***Variable_Data_Size*** 0.
Toplam satır boyutu Hesapla:
Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4
4 Formülde veri satırı satır üstbilgi yükü değerdir.
(Sayfa başına 8096 boş bayt) sayfa başına satır sayısını hesaplayın:
Rows_Per_Page 8096 = / (Row_Size + 2)
Sayfa başına satır sayısı satırları sayfalara yayılan çünkü yuvarlama yöntemi kapalı en yakın tam satır.2 Formüldeki satırın giriş sayfa yuvası dizisi için değerdir.
Tüm satırlar depolamak için gereken sayfaların sayısını hesaplayın:
Num_Pages* = Num_Rows / *Rows_Per_Page
Tahmini sayfa sayısı tam sayfaya yakın yuvarlanmış.
(Sayfa başına 8192 toplam bayt) yığın veri depolamak için gereken alan miktarını hesaplamak:
Yığın boyutu (bayt) = 8192 x Num_Pages
Bu hesaplama, aşağıdakileri dikkate almaz:
Bölümleme
Bölümleme gelen genel giderleri en düşük düzeyde, ancak hesaplamak için karmaşık alandır.Dahil etmek önemli değildir.
Ayırma sayfaları
Bir yığın için ayrılan sayfaları izlemek için kullanılan en az bir IAM sayfa vardır ancak alan yükü azdır ve deterministically kaç IAM sayfa kullanılan tam olarak hesaplamak için hiçbir algoritması vardır.
Büyük nesne (lob) değerleri
The algorithm to determine exactly how much space will be used to store the LOB data types varchar(max), varbinary(max), nvarchar(max), text, ntextxml, and image values is complex.Beklenen toplam öbek boyutunu artırır, lob değerleri ortalama boyutu yalnızca eklemek yeterlidir.
Sıkıştırma
Sıkıştırılmış öbek boyutu pre-calculate olamaz.
Ayrıca bkz.