Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengapa &Kapan saya harus menggunakan SPARSE COLUMN? (SQLSERVER 2008)

Kolom jarang tidak menggunakan 4x jumlah ruang untuk menyimpan nilai, ia menggunakan 4 byte tambahan (tetap) per nilai bukan nol. (Seperti yang telah Anda nyatakan, NULL membutuhkan 0 spasi.)

  • Jadi nilai bukan nol disimpan dalam bit kolom akan menjadi 1 bit + 4 byte =4.125 byte. Tetapi jika 99% di antaranya adalah NULL, itu masih merupakan penghematan bersih.

  • Nilai bukan nol yang disimpan dalam GUID (UniqueIdentifier) kolom adalah 16 byte + 4 byte =20 byte. Jadi jika hanya 50% dari ini adalah NULL, itu masih penghematan bersih.

Jadi "penghematan yang diharapkan" sangat bergantung pada jenis apa kolom yang sedang kita bicarakan, dan perkiraan Anda tentang rasio apa yang akan menjadi nol vs bukan nol. Kolom lebar variabel (varchars) mungkin sedikit lebih sulit diprediksi secara akurat.

Halaman Online Buku ini memiliki tabel yang menunjukkan berapa persentase jenis data yang berbeda harus nol agar Anda mendapatkan manfaat.

Jadi kapan haruskah Anda menggunakan Kolom Jarang? Saat Anda mengharapkan persentase baris yang signifikan memiliki nilai NULL. Beberapa contoh yang terlintas dalam pikiran:

  • "Tanggal Pengembalian Pesanan " di tabel pesanan. Anda berharap persentase penjualan yang sangat kecil akan menghasilkan produk yang dikembalikan.
  • Sebuah "Alamat ke-4 " dalam tabel Alamat. Sebagian besar alamat surat, bahkan jika Anda memerlukan nama Departemen dan "Care Of" mungkin tidak memerlukan 4 baris terpisah.
  • Sebuah "Akhiran " dalam tabel pelanggan. Persentase orang yang cukup rendah memiliki "Jr." atau "III" atau "Esquire" setelah nama mereka.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Kolom Terhitung yang Menggunakan Data dari Tabel Lain di SQL Server

  2. alternatif untuk REPLACE pada tipe data teks atau nteks

  3. 10 FAQ Teratas Tentang Pemantauan Kinerja SQL Server

  4. SQL server mengabaikan kasus dalam ekspresi where

  5. Bagaimana cara memperluas nilai yang dipisahkan koma menjadi baris terpisah menggunakan SQL Server 2005?