SQL Server Indonesia User Groups Community Mengukur Kinerja ETL - drowned in code

SQL Server Indonesia User Groups Community

SQL Server Indonesia User Groups Community
Welcome to SQL Server Indonesia User Groups Community Sign in | Join | Help
in Search

drowned in code

eat, sleep, breath, SQL

Mengukur Kinerja ETL

download sample code

Waktu lagi nyari-nyari cara buat mempercepat SSIS saya menemukan sebuah artikel menarik tentang bagaimana cara melakukan tuning kinerja SSIS. Sebelum melakukan tuning tentu harus tahu dulu bagian ETL yang harus di-tune, dan untuk mengetahuinya ternyata caranya cukup mudah.

Pertama, kita hitung dulu total waktu eksekusi package yang akan di-tune. Dalam contoh berikut saya telah membuat sebuah ETL sederhana yang men-generate satu juta data, melakukan transformasi lookup dari sebuah cache lalu me-load hasilnya ke dalam sebuah file teks. Supaya fleksibel, jumlah data yang di-generate dapat diatur lewat variable NumberOfRows. Package pertama ini saya beri nama Package-Full.dtsx

image

Setelah dilakukan tes dengan penuh ketelitian, ternyata waktu eksekusi yang dibutuhkan 00:01:09.049

Berikutnya menghitung waktu yang dibutuhkan untuk me-load data ke dalam teks file. Sebelum melakukannya saya copy dulu package Package-Full.dtsx dan hasil copy-nya diberi nama Package-Destination.dtsx. Selanjutnya bekerja dengan Package-Destination.dtsx, hapus Flat File Destination dan ganti dengan Row Count lalu eksekusi package Package-Destination.dtsx. Waktu yang ditempuh untuk me-load data ke dalam text file adalah waktu eksekusi Package-Full.dtsx dikurangi waktu eksekusi Package-Destination.dtsx

image

Hasil eksekusi package kali ini adalah 00:00:19.458. Itu berarti waktu load adalah 00:01:09.049 - 00:00:19.458 = 00:00:49.591

Terakhir adalah menghitung waktu extract data sekaligus menghitung waktu transformasi. Seperti pada langkah sebelumnya, copy dulu Package-Destination.dtsx dan ubah nama copy-nya dengan Package-Source.dtsx. Setelah selesai, hapus Lookup, Derived Column, dan Union All pada Package-Source.dtsx. Kemudian hubungkan Script Component dan Row Count lalu eksekusi package Package-Source.dtsx.

image

Setelah dieksekusi ternyata waktu Extract adalah 00:00:10.746. Ini berarti waktu transformasi adalah waktu eksekusi Package-Destination.dtsx dikurangi waktu eksekusi Package-Source.dtsx, 00:00:19.458 - 00:00:10.746 = 00:00:08.712.

Berikut adalah hasil pengukuran kinerja ETL diatas:

Step Waktu
Extract 00:00:10.746
Transform 00:00:08.712
Load 00:00:49.591
Total 00:01:09.049

 

Wah wah, ternyata proses paling lama terjadi pada saat data di-Load ke dalam text file. Mungkin sudah waktunya saya ganti harddisk yah?

Artikel untuk melakukan tuning kinerja SSIS selengkapnya dapat dilihat disini.

Published Feb 20 2009, 11:06 PM by si_hendrik
Filed under:

Comments

No Comments
Powered by Community Server (Commercial Edition), by Telligent Systems