SQL Server Indonesia User Groups Community My SSIS Worst Practice - 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

My SSIS Worst Practice

Beberapa waktu yang lalu saya melakukan kesalahan besar dengan project SSIS yang saya kerjakan. Yang sedianya saya pikir merupakan Best Practice SSIS berubah menjadi worst practice.

Menggunakan SQL Server Destination

Waktu baca di Books Online kalau SQL Server Destination jauh lebih cepat dibandingkan OLE DB Destination, saya dah gatel pengen pake. Soalnya di project-project sebelumnya saya gak pernah dapet kesempatan menggunakan SQL Server Destination karena destination nya bukan SQL Server.

Ternyata, memang kenceng kalau yang dieksekusi hanya satu package saja. Tapi begitu dah 200-an package yang jalan, bukannya kenceng malah error timeout yang saya dapat. Dan sialnya, behavior error-nya tuh gak pernah sama. Kadang Package A yang fail, kadang package B yang fail, dan seterusnya.

Akhirnya ke-200-an package itu harus di-rewrite dan SQL Server Destination pun diganti dengan OLE DB Destination. Untungnya dengan sedikit bantuan dari SQL Server SDK hal ini dapat dengan cepat diperbaiki, walaupun menimblkan beberapa masalah kecil yang nggak worst. Heuheuheu.

Menyimpan Connection String di Environment Variable

Tadinya saya pikir ini ide yang bagus, karena saya punya dua server. Yang pertama server development dan satunya production. Tapi ternyata, untuk connection string yang didalamnya terdapat informasi sensitive (baca:password) si informasi nya gak bisa dibaca oleh si package. Untuk yang satu ini, saya harus menggantinya dengan cara menyimpan di SQL Server.

Menggunakan Checkpoint

Checkpoint adalah hal yang sangat membantu apabila terdapat error di dalam package yang kita kerjakan. Di dalam checkpoint semua konfigurasi dan variable yang terdapat di dalam package disimpan. Di dalam project saya yang lalu, data yang diambil berdasarkan tanggal yang nilainya disimpan di dalam sebuah variable. Sialnya, package yang dieksekusi dari job harian itu fail di hari libur dan pada saat hari kerja ketika datanya di-cek ternyata masih berisi data hari libur.

Untuk menghindari hal ini, nama file checkpoint harus dibuat dynamic dengan format CheckPoint_yyyy-mm-dd.xml.

 

Waduh, semoga list wost practice ini gak bertambah lagi yah. Tapi sering-sering cek post ini kalo ternyata saya melakukan worst practice lainnya.

Supaya kejadian ini gak terjadi lagi, ada beberapa referensi best practice yang saya temukan dan saya coba implementasikan dalam project, diantaranya:

SSIS Best Practices - Performance

SSIS: Suggested Best Practices and naming conventions

Top 10 SQL Server Integration Services Best Practices

Comments

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