Kali ini saya akan memosting materi tentang apa yang telah saya peroleh
pada perkuliahan Sistem Basis Data tentang Optimasi Query dan Query lanjutan.
Data yang tersimpan dalam database semakin lama akan semakin besar ukuran
atau volumenya. Apabila tidak didukung dengan pengaksesan yang memadai maka
akan mempengaruhi lambatnya kinerja suatu database.
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 karyawan WHERE provinsi=”Jawa Barat”;
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 karyawan
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 karyawan_urut
AS SELECT * FROM karyawan ORDER by id;
Maksud dari SQL di atas yaitu bahwa tabel karyawan_urut berisi data
yang sama dengan tabel karyawan hanya datanya terurut berdasarkan kolom id.
Perencanaan Eksekusi
Cara melihat jalur akses yang akan digunakan database saat melakukan query
yaitu menggunakan perintah explain plan, yang aka member informasi tentang
rencana eksekusi dari suatu query. Informasi ini disimpan dalam tabel
PLAN_TABLE yang terdapat di schema user yang mengeksekusi perintah tersebut.
Faktor Lain yang Berpengaruh Terhadap Kecepatan Akses Data
Faktor lain yang berpangaruh diantaranya yaitu optimasi aplikasi dan
penggunaan cluster dan index. Hal yang akan dibahas dalam optimasi query
berikut ini tidak melibatkan penggunaan komponen yang ada dalam arsitektur
database engine.
Berikut penjelasan tentang Query Lanjutan
Tabel yang digunakan Pada Pembahasan
Bagian ini menjelaskan mengenari tabel yang digunakan pada pembahasan
selanjutnya>
disini kita menggunakan 3 buah tabel untuk masing-masing struktur
disini kita menggunakan 3 buah tabel untuk masing-masing struktur
Sub Query
Sub Query adalah statement SELECT yang dilampirkan sebagai klausa dalam SQL
statement yang lain. Berikut contoh peritah sub Query pada SQL:
SELECT select_list
FROM table
WHERE expr operator (SELECT select_list FROM table);
Penggunaan SubQuery
Subquery mengembalikan nilai ke main query. Subquery digunakan untuk
menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui.
Berikut contoh penggunaan subQuery:
SELECT last_name FROM employees WHERE salary >
SELECT salary FROM employees WHERE employee_id=149);
Pembandingan Kolom
Pembandingan kolom dalam subquery banyak kolom dapat berupa:
- Pembandingan
berpasangan
- Pembandingan tidak
Berpasangan
Korelasi SubQuery
Digunakan untuk pemrosesan baris per baris. Tiap-tiap subquery dijalankan
sekali untuk setiap baris dari outer query.