Postingan kali ini masih tentang database lha yaa
oke kali ini saya mau membahas tentant optimasi a.k.a tuning (bekennya sih gitu). The case is saya mau retrieve data customer id, customer first name, customer gender, customer year of birth, dan the last customer email dari table customer yang saya punya. Jumlah baris yang dimiliki oleh table customer sendiri ada 55500. Jumlah yang menurut saya udah cukup banyak, apalagi komputer saya bisa dimasukkan dalam kondisi komputer standar.
Intel Pentium 4 2.66 GHz with 1.5 GB of RAM
Okay kita langsung saja, pada skenario pertama saya akan coba retriev yang saya butuhkan dengan query yang teramat sederhana
select cust_id,cust_first_name,cust_gender,cust_year_of_birth,cust_email from sh.customers
dan bummmm
55500 row data keluar dengan waktu yang bisa dilihat di screen shoot berikut
Yippie, saya menunggu 6 menit dan 43 detik lebih untuk 55500 row data. Apapun proses yang terjadi didalam query tersebut don’t care ya
Next, skenarionya adalah menggunakan hint. Konon katanya ini adalah query tuning. Ok langsung jajal aja deh. Apa yang mau saya retriev masih sama, namun saya lakukan dengan query yang berbeda
SELECT /*+ FIRST_ROWS(10) */ cust_id,cust_first_name,cust_gender,cust_year_of_birth,cust_email from sh.customers
dan binggoooooo hasilnya adalah sebagai berikut…
Waktu yang saya butuhkan untuk jumlah data yang sama seperti yang sebelumnya adalah hanya 31 detik lebih dikit saja.
FYI saya selalu melakukan set kondisi buffer dikosongkan, begitu juga shared pool untuk parsing query juga saya kosongkan sebelum memulai dengan masing-masing query. So my suggestion is use my query if you want to retrieve so many rows.
See you bye…
