Aracılığıyla paylaş


Bir yığın boyutunu tahmin etmek

Bir yığın veri depolamak için gereken alanı tahmin etmek için aşağıdaki adımları kullanabilirsiniz:

  1. Tabloda mevcut olacaktır satır sayısını belirtin:

    Num_Rows = tablosu içinde satır sayısı

  2. Kendi depolama için gereken alanı hesaplamak ve Sabit uzunluk ve değişken uzunlukta sütun sayısını belirtin:

    Alanı hesaplamak her biri bu gruplar sütun içinde veri satırı kaplar. Bir sütun veri türü ve uzunluğu belirtimine bağlıdır. Daha fazla bilgi için, bkz. Data Types (Database Engine).

    Num_Cols = toplam (Sabit uzunluk ve değişken uzunlukta) sütun sayısı

    Fixed_Data_Size = toplam bayt boyutu tüm sabit uzunluklu sütunları

    Num_Variable_Cols = değişken uzunlukta sütun sayısı

    Max_Var_Size = azami toplam bayt tüm değişken uzunlukta sütun

  3. Bölümü boş bitmap olarak bilinen satır, Sütun nullability yönetmek için ayrılmıştır. Boyutu Hesapla:

    Null_Bitmap = 2 + ((Num_Cols + 7) / 8)

    Bu deyim yalnızca tamsayı kısmını kullanılmalıdır. Herhangi bir geri kalanı atın.

  4. Değişken uzunlukta veri boyutu Hesapla:

    Tabloda değişken uzunlukta sütun varsa, 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*** her değişken uzunlukta sütun izlemek için vardır. Bu formül, tüm değişken uzunlukta sütun yüzde 100 dolu olduğunu varsayar. Değişken uzunlukta sütun depolama alanı küçük bir yüzdesi kullanılacak öngörüyorsanız, ayarlayabileceğiniz ***Max\_Var\_Size*** toplam tablo boyutunun daha doğru bir tahmin verimi yüzde değeri.


> [!NOT]
> <P>Bu birleştirebilirsiniz varchar, nvarchar, varbinary, ya sql_variant8,060 bayt aşan toplam tanımlanan tablo genişliği neden sütun. Bu sütunların her birinin uzunluğu hala sınırı için 8.000 bayt aralığı içinde olmalıdır bir varchar, nvarchar, varbinary, ya sql_variantsütun. Ancak, bunların kombine genişlikleri Tablo 8,060 bayt sınırını aşıyor olabilir. Daha fazla bilgi için, bkz. <A href="https://msdn.microsoft.com/tr-tr/library/ms186981(v=sql.110)">Row-Overflow Data Exceeding 8 KB</A>.</P>


Hiçbir değişken uzunlukta sütun varsa, set ***Variable\_Data\_Size*** 0.
  1. Toplam satır boyutunu hesaplamak:

    Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4

    4 Formülü veri satırı satır üstbilgi yükü değerdir.

  2. Sayfa (sayfa başına 8096 boş bayt sayısı) başına satır sayısını hesaplayın:

    Rows_Per_Page 8096 = / (Row_Size + 2)

    Satır sayfalara yayılan değil çünkü, sayfa başına satır sayısı yakın bütün satır yuvarlanmasını. 2 Formül satırın giriş sayfası yuvası dizisi için değerdir.

  3. 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ı için en yakın tam sayfa yuvarlanmış.
  1. Yığın (sayfa başına 8192 toplam bayt sayısı) verileri depolamak için gereken alanı hesaplamak:

    Öbek boyutu (bayt) = 8192 x Num_Pages

Bu hesaplama, aşağıdakileri dikkate almaz:

  • Bölümleme

    Bölümleme gelen yükü en az, ama karmaşık hesaplamak için alandır. İçerecek şekilde önemli değildir.

  • Ayırma sayfaları

    Bir yığın için ayrılan sayfaları izlemek için kullanılan en az bir IAM sayfa ama Uzay yükü azdır ve deterministically kaç IAM sayfaları tam olarak kullanılacak hesaplamak için hiçbir algoritması mevcuttur.

  • Büyük nesne (lob) değerleri

    lob veri türlerini depolamak için alan miktarını tam olarak kullanılacağını belirlemek için algoritma varchar(max), varbinary(max), nvarchar(max), text, ntext xml, ve imagedeğerleri karmaşık. Sadece beklenen toplam öbek boyutu eklemek lob değerleri ortalama boyutu eklemeniz yeterlidir.

  • Sıkıştırma

    Sıkıştırılmış bir yığın boyutu pre-calculate olamaz.

  • Seyrek sütunlar

    Seyrek sütun alanı gereksinimleri hakkında daha fazla bilgi için bkz: Seyrek sütunlar kullanma.

Ayrıca bkz.

Kavramlar

Tablo boyutunu tahmin etmek

Kümelenmiş bir dizin boyutunu tahmin etmek

Kümelendirilmemiş dizin boyutunu tahmin etmek

Diğer Kaynaklar

Table and Index Organization

Heap Structures

Clustered Index Design Guidelines

Creating Indexes (Database Engine)

Nonclustered Index Design Guidelines

Veritabanı boyutunu tahmin etmek