SQL Tuning: Fungsi String di Klausa WHERE

Ini adalah Oracle SQL Performance Tuning tips and trick dari Mas FF. Katakanlah kita punya SQL seperti ini,

SELECT *
FROM tabel t
WHERE LOWER(t.kol)
LIKE ‘%hehe%’ AND SUBSTR(t.kol2,2,4) = ‘AB’

Terlihat familiar? Ini memang query standar kok. Tapi apakah Anda tahu implikasi fungsi LOWER dan SUBSTR di masalah kecepatan? Ternyata proses LOWER dan SUBSTR adalah me-lower-case-kan seluruh baris di kolom t.kol tersebut dan men-substring-kan seluruh baris di kolom t.kol2 sebelum membandingkannya dengan hehe dan AB. Jika jumlah barisnya terlalu banyak, tentu saja akan terjadi degradasi kecepatan yang sangat berarti (baca: signifikan).

Solusi: Gunakan fungsi-fungsi semacam LOWER dan SUBSTR secara bijak. Jika sudah yakin suatu kolom dalam lowercase, maka input sebelah kanan (dalam hal ini hehe) harus diubah ke lowercase juga. Demikian pula untuk fungsi SUBSTR.

Demikian tips dan trik singkat SQL Tuning. 😀

Author: Galih Satriaji

Bookaholic, Workaholic. Chubby. That's me!

3 thoughts

  1. mas, aku kok paling gak mudeng kalo diajak ngomong soal database… *apa aku yang bodoh ya..?* mulai dari query biasa sampe trigger, bahkan procedure juga gak mudeng2…

Leave a Reply

Your email address will not be published. Required fields are marked *