Bagikan melalui


Memperkirakan Ukuran Timbunan

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Anda dapat menggunakan langkah-langkah berikut untuk memperkirakan jumlah ruang yang diperlukan untuk menyimpan data dalam timbunan:

  1. Tentukan jumlah baris yang akan ada dalam tabel:

    Num_Rows = jumlah baris dalam tabel

  2. Tentukan jumlah kolom panjang tetap dan panjang variabel dan hitung ruang yang diperlukan untuk penyimpanannya:

    Hitung ruang yang diduduki masing-masing grup kolom ini dalam baris data. Ukuran kolom tergantung pada jenis data dan spesifikasi panjang.

    Num_Cols = jumlah total kolom (panjang tetap dan panjang variabel)

    Fixed_Data_Size = ukuran byte total dari semua kolom panjang tetap

    Num_Variable_Cols = jumlah kolom panjang variabel

    Max_Var_Size = ukuran total byte maksimum dari semua kolom panjang variabel

  3. Bagian dari baris, yang dikenal sebagai bitmap null, dicadangkan untuk mengelola nullability kolom. Hitung ukurannya:

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

    Hanya bagian bilangan bulat dari ekspresi ini yang harus digunakan. Buang sisanya.

  4. Hitung ukuran data panjang variabel:

    Jika ada kolom panjang variabel dalam tabel, tentukan berapa banyak ruang yang digunakan untuk menyimpan kolom dalam baris:

    Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size

    Byte yang ditambahkan ke Max_Var_Size adalah untuk melacak setiap kolom panjang variabel. Rumus ini mengasumsikan bahwa semua kolom panjang variabel penuh 100 persen. Jika Anda mengantisipasi bahwa persentase yang lebih kecil dari ruang penyimpanan kolom panjang variabel akan digunakan, Anda dapat menyesuaikan nilai Max_Var_Size dengan persentase tersebut untuk menghasilkan perkiraan yang lebih akurat dari ukuran tabel keseluruhan.

    Catatan

    Anda dapat menggabungkan kolom varchar, nvarchar, varbinary, atau sql_variant yang menyebabkan total lebar tabel yang ditentukan melebihi 8.060 byte. Panjang masing-masing kolom ini masih harus berada dalam batas 8.000 byte untuk kolom varchar, nvarchar, varbinary, atau sql_variant . Namun, lebar gabungannya dapat melebihi batas 8.060 byte dalam tabel.

    Jika tidak ada kolom panjang variabel, atur Variable_Data_Size ke 0.

  5. Hitung ukuran baris total:

    = Null_Bitmap Variable_Data_Size + Fixed_Data_Size Row_Size + + 4

    Nilai 4 dalam rumus adalah overhead header baris dari baris data.

  6. Hitung jumlah baris per halaman (8096 byte gratis per halaman):

    Rows_Per_Page = 8096 / (Row_Size + 2)

    Karena baris tidak mencakup halaman, jumlah baris per halaman harus dibulatkan ke bawah ke seluruh baris terdekat. Nilai 2 dalam rumus adalah untuk entri baris dalam array slot halaman.

  7. Hitung jumlah halaman yang diperlukan untuk menyimpan semua baris:

    = Rows_Per_Page Num_Rows Num_Pages /

    Jumlah halaman yang diperkirakan harus dibulatkan ke atas ke seluruh halaman terdekat.

  8. Hitung jumlah ruang yang diperlukan untuk menyimpan data dalam timbunan (8192 total byte per halaman):

    Ukuran timbunan (byte) = 8192 x Num_Pages

Perhitungan ini tidak mempertimbangkan hal-hal berikut:

  • Partisi

    Overhead ruang dari partisi minimal, tetapi kompleks untuk dihitung. Tidak penting untuk disertakan.

  • Halaman alokasi

    Setidaknya ada satu halaman IAM yang digunakan untuk melacak halaman yang dialokasikan ke tumpukan, tetapi overhead ruang minimal dan tidak ada algoritma untuk menghitung secara deterministik berapa banyak halaman IAM yang akan digunakan.

  • Nilai objek besar (LOB)

    Algoritma untuk menentukan dengan tepat berapa banyak ruang yang akan digunakan untuk menyimpan jenis data LOB varchar(max), varbinary(max), nvarchar(max), teks, ntextxml, dan nilai gambar kompleks. Cukup untuk hanya menambahkan ukuran rata-rata nilai LOB yang diharapkan dan menambahkannya ke ukuran timbunan total.

  • Kompresi

    Anda tidak dapat menghitung ukuran timbunan terkompresi sebelumnya.

  • Kolom Tersebar

    Untuk informasi tentang persyaratan ruang kolom jarang, lihat Menggunakan Kolom Jarang.

Lihat Juga

Tumpuk (Tabel tanpa Indeks Berkluster)
Indeks Terkluster dan Non-Kluster Dijelaskan
Membuat Indeks Berkluster
Membuat Indeks Nonclustered
Memperkirakan Ukuran Tabel
Memperkirakan Ukuran Indeks Berkluster
Memperkirakan Ukuran Indeks Nonclustered
Memperkirakan Ukuran Database