Tolong jelaskan perbedaan antara kompresi baris dan halaman

10

Saya mencoba menentukan mana yang akan diterapkan dan kapan waktu yang tepat untuk menerapkan kompresi. Saya memposting pertanyaan ini untuk mendapatkan wawasan dari komunitas ini. Saya telah membaca beberapa artikel, tetapi ingin memiliki tempat di mana ini dibahas dalam Administrator DB.

Gerald Patriowski
sumber

Jawaban:

6

Ini adalah referensi dan penjelasan yang bagus untuk kompresi baris halaman v (tanpa kata-kata dimaksudkan): http://blogs.lessthandot.com/index.php/datamgmt/dbprogramming/how-sql-server-data-compression/

Singkatnya, kompresi halaman mencakup algoritma yang terkandung dengan kompresi level baris dan kemudian juga mencakup kompresi Awalan dan kompresi Kamus. Awalan dan kompresi kamus menemukan pola dalam data dan menggantinya dengan nilai yang lebih kecil. Selama dekompresi, ia akan melakukan kebalikan dan mengembalikan data ke nilai aslinya.

Level baris membuat keputusan kompresi lebih mudah, seperti mengurangi metadata, dan menghapus ruang yang tidak digunakan, seperti huruf 'Y' yang disimpan dalam CHAR (1000).

Artikel yang dirujuk menjelaskan hal ini dengan lebih rinci.

John
sumber
6

Untuk membuat keputusan untuk banyak tabel, Anda dapat menjalankan prosedur " sp_estimate_data_compression_savings ":

exec sys.sp_estimate_data_compression_savings  @Schema,@Table,NULL,NULL,ROW;
exec sys.sp_estimate_data_compression_savings  @Schema,@Table,NULL,NULL,PAGE;

Itu akan membantu Anda menentukan penghematan untuk setiap tabel tertentu.

Dari pengalaman saya kompresi PAGE bekerja lebih baik di sebagian besar kasus.

Slava Murygin
sumber