SQL Server 2008 Data Compression – Part I
Sekalian mengingat kembali dan mendokumentasikan apa yang
pernah aku presentasikan pada event TechNet Deep Dive SQL Server yang diadakan
di Auditorium Microsoft Indonesia tanggal 22 Juli 2008 yang lalu, coba kutuliskan pada tulisan di bawah ini.
Semoga bisa bermanfaat.
Secara umum kompresi data (Data Compression) diartikan dengan proses mengubah ukuran suatu
file menjadi file yang ukurannya lebih kecil.
Berdasarkan definisi di atas, kompresi data dapat dibagi menjadi
2 jenis, yaitu :
1.
Lossy Data Compression
2.
Lossless Data
Compression
Lossy Data Compression
memiliki kelebihan dalam hal kecepatan dan rasio kompresi yang lebih besar,
tetapi sebagian data akan hilang (loss) pada saat dilakukan proses uncompression. Salah satu contoh jenis kompresi ini
digunakan untuk mengubah file audio menjadi mp3.
Sebaliknya Lossless Data
Compression mensyaratkan bahwa data hasil rekontruksi akan persis sama
dengan data yang terkompress.
Terdapat 2 teknik kompresi yang umum digunakan dalam Lossless Data Compression yaitu :
1.
Berdasarkan pada prinsip data yang sering muncul akan
dikodekan dengan lebih sedikit bit.
Contoh : Huffman Coding
2.
Berdasarkan pada permodelan statistik untuk data
teks. Misalkan dengan membangun suatu
kamus (dictionary) dari simbol-simbol
yang sering muncul pada suatu blok dan kemudian hanya akan diacu (reference) dengan menggunakan
pointer. Contoh : LZ (Lempel-Ziv) algorithm.
Nah, bagaimana dengan kompresi pada database? Hal pertama
yang harus dipahami bahwa tujuan utama dari kompresi data pada database bukan
untuk mendapatkan rasio kompresi yang maksimum, tetapi untuk mendapatkan
keimbangan terbaik antara rasio kompresi yang didapat dengan cost dari proses
kompresi/dekompresi. Sehingga kompresi yang didapat akan bergantung pada
distribusi dan skema data yang ada.
Masalah-masalah terkait kompresi data yang harus kita
perhatikan adalah :
- Storage
Cost
- Manageability
Cost
- Backup/recovery
- Create/Rebuild
indexes
- Bulk
import
- Consistency
Checking
Sebenarnya, Microsoft sudah mulai mengupayakan masalah
kompresi data pada database sejak meluncurkan SP2 untuk SQL Server 2005, yaitu
dengan mengimplementasikan fitur variable-length
decimal storage format.
Sedangkan pada SQL Server 2008 fitur terkait kompresi data diimplementasikan
dalam :
- Backup
Compression
- Data
Compression
- ROW
Compression
- PAGE
Compression
Pada tulisan berikutnya akan kutuliskan secara lebih detail
bagaimana mekanisme kompresi data ini dilakukan oleh SQL Server 2008.