SQL Server Indonesia User Groups Community September 2010 - Posts - thias
Welcome to SQL Server User Group Indonesia
Sign in JoinHelp | Sign In Live ID

thias

September 2010 - Posts

Introduction to Filtered index [SQL Server 2008]

Filter index merupakan feature baru di SQL server 2008. Setelah pada SQL Server 2005 ada feature include index. maka pada SQL Server 2008 ada filtered index.

Pengertian filtered index sendiri sangat sederhana. yaitu Index dengan filter

tentunya index disini yang dimaksud adalah non cluster index, bukan clustered index.

Jadi sebenarnya apa fungsi dari filtered index ?

biasanya pada sebuah table transaksi yang besar, memiliki banyak index, maka index tersebut akan cukup memakan storage kita. pdhal misalnya pada table yang berisi data tahun 2005 - 2010 ( data yang kemungkinan paling banyak kita cari atau hit adalah data 3 tahun mundur) disinilah filter index dapat membantu.

kita dapat saja menggunakannya seperti

"

CREATE INDEX IX_NC_Sales_1
ON testindex(SalesDate)

WHERE SalesDate > 2007

"

dengan filtered index, maka kita akan lebih optimal dalam penerapan index, hanya mengindex data yang memang lebih banyak di hit dan juga dapat menghemat storage.

Posted: Thursday, September 30, 2010 8:11 PM by thias with no comments

Filed under:

SQL Server 2008 - Partitioning

Setelah sekian lama tidak menulis blog, kebetulan minggu depan ada client request untuk knowledge transfer dengan custom materi, sehingga sekalian saja tulis overview materinya di blog.

1. Partitioning

Partitioning pertama kali dikenalkan pada SQL Server 2005 - hanya pada Enterprise Edition. sebelumnya pada SQL 2000, jika ingin menggunakan partitioning, agak tricky, table dipecah menjadi beberapa table lalu dibuat view untuk mengakses table - table tersebut.

create view VW_Sales

as

Select * from sales_1

union all

select * from sales_2

union all

...

..

select * from sales_12

dan pada SQL 2005 sudah ada fitur untuk partitioning.

Yang perlu diperhatikan pada partitioning adalah tujuan dari partitioning adalah untuk data managing dan maintainability, disamping itu juga untuk improving query performance terhadap "huge table".

berikut ini adalah beberapa workaround untuk melakukan partitioning :

1. pertama siapkan dahulu database dan filegroup untuk partitioning.

2. lalu kita buat partition function dan parition scheme.

partition function : fungsi yang akan menjadi pembatas untuk kita mempartisi (pada satu table hanya bisa mempunyai 1 partition function, biasanya yang menjadi partition function adalah : datetime (order data - dibagi perbulan) /  region (dibagi per region (jawa, bali, sumatera, dll)

partition scheme : adalah penyimpanan fisik storage berdasarkan partition function. sebaiknya tiap partitisi disimpan pada filegroup yang berbeda, disamping performance, untuk manageability juga lebih mudah.

dalam hal ini yang dimaksud dalam contoh adalah values

0 - 300 = FG1

301 - 500 = FG2

501 - ~ = FG3

3.kita bikin table dengan menggunakan partition schema yang tadi kita buat.

dan table tersebut akan dipartisi sesuai function dan schema yang sudah kita create.

 

 

untuk mengeceknya bisa menggunakan query ::


SELECT $partition

 

Posted: Saturday, September 25, 2010 10:33 PM by thias with no comments

Filed under:

More Posts