The Power of Knowladge

explore - brainstorm - share
See also: Other Geeks@INDC

News

where is the news

Community Web Site

June 2009 - Posts

Database Compression in SQL Server 2008

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) 

Share this post: | | | |