OPTIMASI QUERY




Optimasi Query adalah suatu proses untuk menganalisa query untuk menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah output. Atau bisa juga dikatakan bahwa optimasi query adalah sebuah prosedur untuk meningkatkan strategi evaluasi dari suatu query untuk membuat evaluasi tersebut menjadi lebih efektif.

Optimasi query mencakup beberapa teknik seperti transformasi query ke dalam bentuk logika yang sama, memilih jalan akses yang optimal dan mengoptimumkan penyimpanan data.

Tujuan dari optimasi query adalah menemukan jalan akses yang termurah untuk meminimumkan total waktu pada saat proses sebuah query. Untuk mencapai tujuan tersebut, maka diperlukan optimizer untuk melakukan analisa query dan untuk melakukan pencarian jalan akses.  

Optimasi pada Perintah SQL

Optimasi dan perintah SQL sangatlah dibutuhkan karena fungsinya sangatlah besar dalam pengelolaan database. Untuk menampilkan hasil query dibutuhkan pencarian yang melibatkan struktur fisik penyimpanan data. Inti dari optimais query adalah meminimalisir jalur pencarian untuk menemukan data yang disimpan dalam lokasi fisik.


Index digunakan untuk meningkatkan keepatan akses data pada database. Pada saat query dijalankan maka index aka mencari data dan menentukan nilai ROWID yang membantu menemukan lokasi data secara fisik di disk.

Contoh, misalkan digunakan index yang melibatkan tiga buah kolom yang mengurutkan kolom menurut kota., provinsi dan kode pos dari table karyawan, sebagai berikut:

CREATE INDEX idx_kota_prov_kodepos ON karyawan(kota, provinsi, kode_pos) TABLESPACE INDX;

Kemudian user melakukan query sebagai berikut:

SELECT * FROM pegawai WHERE provinsi=”Jawa Timur”;

Pada saat melakukan query ini, index tidak akan digunakan karena kolom pertama (kota) tidak digunakan dalam klausa WHERE.  Jika user sering melakukan query ini, maka kolom index harus diurutkan menurut provinsi.

Contoh SQL perintah SQLnya sebagai berikut:

SELECT * FROM pegawai WHERE id BETWEEN 1010 AND 2010;

Apabila kita ingin membuat table lain yang memiliki urutan yang berbeda dari tabel asal, maka perintah SQLnya sebagai berikut:

CREATE TABLE pegawai_urut AS SELECT * FROM pegawai ORDER by id;

Maksud dari  SQL di atas yaitu bahwa tabel pegawai_urut berisi data yang sama dengan tabel karyawan hanya datanya terurut berdasarkan kolom id.

Tidak ada komentar: