Selasa, 08 Januari 2013

OPTIMASI QUERY

Lagi-lagi kita akan membahas masalah tentang query namun pada kesempatan kali ini kita akan lebih mendalam materi tentang OPTIMASI QUERY.

 
Optimasi pada perintah SQL

         Index pada database digunakan untuk meningkatkan kecepatan akses data. Pada saat query dijalankan, index mencari data dan menentukan nilai ROWID yang membantu menemukan lokasi data secara fisik di disk. Akan tetapi penggunaan index yang tidak tepat, tidak akan meningkatkan unjuk kerja dalam hal ini kecepatan akses data.

        Misal digunakan index yang melibatkan tiga buah kolom yang mengurutkan kolom menurut kota, propinsi dan kode pos dari tabel karyawan, sebagai berikut :

CREATE INDEX Idx_kota_prop_kodepos
ON karyawan(kota, propinsi,kode_pos)
TABLESPACE INDX ;
 

         Kemudian user melakukan query sebagai berikut :
SELECT*FROM karyawan WHERE propinsi="jawa tengah";

        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 propinsi. Selain itu, proses pencarian data akan lebih cepat jika data terletak pada block tabel yang berdekatan daripada harus mencari di beberapa datafile yang terletak pada block yang berbeda.
Misal pada perintah SQL berikut ini :

SELECT * FROM mahasiswa
WHERE id BETWEEN 1010 AND 2010

Query ini akan melakukan “scan” terhadap sedikit data block jika tabel karyawan diatas diurutkan berdasarkan kolom id. Untuk mengurutkan berdasarkan kolom yang berbeda-beda maka tabel disimpan dalam flat file, kemudian tabel diekspor dan diurutkan sesuai kebutuhan.

Tidak ada komentar:

Posting Komentar