ukuran data khususnya untuk keperluan archive sangat utama, apalagi kalau ternyata data tersebut sudah tidak di gunakan sebagai data utama transaksi melainkan hanya untuk keperluan data history. SQL Server 2008 menyediakan kapasitas untuk keperluan compresi data dengan tujuan untuk
-
Kompresi data backup, tujuannya untuk memperkecil ukuran file backup
-
Kompresi data, untuk kompresi data ini terdapat 2 pilihan kompresi yaitu kompresi berdasarkan ROW Compression dan PAGE Compression
A. Backup Compression
Digunakan untuk mengkompresi ukuran file backup dari sebuah database yang biasa memili permasalahan dalam hal Storage Cost, Atau Manageability Cost Seperti backup & recovery, create/rebuild indexes, Bulk Import dan Consistency Checking dari data yang ada di dalam database.
Berikut contoh untuk melakukan Backup Kompression
USE master
GO
EXEC sp_configure ‘backup compression default’,’1’;
RECONFIGURE WITH OVERRIDE;
--Without Compression
BACKUP DATABASE AdventureWorks
TO DISK=‘C:\Backups\AdventureWorksDB_nocompression.bak’
GO
--With Compression
BACKUP DATABASE AdventureWorks
TO DISK=‘C:\Backups\AdventureWorksDB_compression.bak’
WITH COMPRESSION
B. Data Compression
Digunakan untuk memperkecil ukuran data, dengan memaksimalkan cost compresi dan decompresi dengan menggunakan algoritma column prefix compression, memungkinkan ukuran data akan lebih kecil dari data sebelumnya. Kompresi data ini di bagi menjadi ROW Compression dan PAGE Compression.
Berikut Contoh Penggunaan Page Compression:
-- Create new Table
CREATE
TABLE BigTable
(
FirstColumn Int,
SecondColumn
Int,
ThirdColumn
char(8000))GO
-- LOAD 6000 rows into table
DECLARE @i int
SELECT
@i=0
WHILE
(@i <6000)
BEGIN
INSERT INTO BigTable
VALUES(@i,@i+6000,REPLICATE('a',60))
SET @i=@i+1
END
-- Find the current size of uncompressed table
Exec
sp_spaceused N'BigTable'
-- Estimate ROW compression
EXEC
sp_estimate_data_compression_savings 'dbo','BigTable',NULL,NULL,'ROW'
-- Estimated due to PAGE compression
EXEC
sp_estimate_data_compression_savings 'dbo','BigTable',NULL,NULL,'PAGE'
-- Perintah Kompresi PAGE
ALTER TABLE [dbo].['BigTable'] REBUILD
WITH (DATA_COMPRESSION = PAGE)
Selamat mencoba
(KN-SQL Geeks)