SQL Tuning: Fungsi String di Klausa WHERE

Date December 11, 2007

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. :D

3 Responses to “SQL Tuning: Fungsi String di Klausa WHERE”

  1. tukang foto keliling said:

    hehe iya… jadi ingat ama pak Darlis yang ngajaris BDL, gimana caranya mengoptimasikan query yang njlimet :) dan terimplementasikan sewaktu sempat nyambi2 kerja :D

    nice article

  2. aji putra said:

    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…

  3. Galih Satria said:

    #ajiputra:
    mempelajari database harus pakai cintah…. (halah, cintah.. makan itu cintah) :D

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>