Query dari 23 jam ke 7 detik lalu ke 2 detik; Ketawa ngakak
Query dari 23 jam ke 7 detik lalu ke 2 detik; Ketawa ngakak
By : Kasim Wirama, MCDBA
Saya coba ceritakan sedikit mengenai pengalaman tuning. sebulan lalu saya ditelpon dari salah satu karyawan sebuah perusahaan di Sydney. Sepertinya dia sering baca ke dalam blog-ku, dan meminta bantuan untuk melihat kasus sebuah stored procedure, yang jika dieksekusi akan memakan waktu 23 jam. What the hell!, hatiku berguman. Ngeri juga terima permintaan bantuan dia, saya coba direct dari jauh dengan harapan dia berhasil melakukan. Namun harapanku meleset, terpaksa saya memenuhi undangan dia ke kantornya untuk trouble shoot stored procedure “keramat” tersebut yang didominasi oleh big size table sekitar 10 sampai 40 juta record. Terus terang saya cuma main-main dengan database dengan jumlah record 500 ribuan. Sempat keder juga. Tapi kupikir-pikir cuma 1 stored procedure aja, ladenin aja tantangannya.
Karena saya enggan utak-atik querynya karena ada 6 query di dalam stored procedure dan correlated subquery sampai 4 tingkat (#$#&%^#$@#), saya gunakan cara paling mudah dengan jalankan database tuning advisor (DTA), ternyata improvementnya cuma 4 persen bila diapply index dan statistik yang direkomendasikan oleh DTA. Lemas sudah saya, meski AC-nya dingin, namun saya keringat dingin juga, karena reputasi ikut dipertaruhkan juga. Dengan bahasa inggris yang standard Indonesia (sempat kelepasan kata “gua”, orang bulenya pasang tampang bingung), aku minta ijin kalau boleh utak-atik querynya. Dengan anggukan penuh semangat, dia bilang “Sure! you can do it”. Sampai malam jam 8 saya rombak querynya, ternyata usahaku tidak sia-sia, hasil akhir bisa sampai 2 detik dengan hot cache dan 3 detik dengan cool cache, dengan hasil permulaan rewrite query ke 7 detik. Orang bulenya terpana, saya juga ikut terpana. Terima kasih Tuhan akhirnya Engkau membantuku.
Malam itu udara Sydney dingin sekali karena masuk musim gugur, sama dinginnya dengan ruangan server. Antara mengigil dengan ketawa ngakak bercampur baur dalam perjalanan pulang ke apartemen. Sudah gilakah saya? Ya saya sudah gila karena merugi tidak ikut kuliah selama 1 hari, terpaksa fotocopy catatan dari sesama mahasiswa. Seminggu kemudian saya mendengarkan seminar performance tuning di SQL monthly meeting di salah sudut gedung pencakar langit sambil senyum-senyum ingat kejadian yang sudah lewat.