SQL Server Indonesia User Groups Community SQL Server 2008 Data Compression – Part I - Rachmat Hariyanto
Welcome to SQL Server User Group Indonesia
Sign in JoinHelp

Rachmat Hariyanto

There's always time for coding! My friends are Visual Studio 2008 Team System (ASP .NET 3.5, LINQ, VB .NET), jQuery, CodeSmith and SQL Server 2005/2008.

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 :

  1. Storage Cost
  2. Manageability Cost
    1. Backup/recovery
    2. Create/Rebuild indexes
    3. Bulk import
    4. 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 :

  1. Backup Compression
  2. Data Compression
    1. ROW Compression
    2. PAGE Compression

 

 

Pada tulisan berikutnya akan kutuliskan secara lebih detail bagaimana mekanisme kompresi data ini dilakukan oleh SQL Server 2008. 

Published Wednesday, November 19, 2008 4:12 AM by Rachmat Hariyanto

Comments

No Comments