A. 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 nama, fakultas dan NIM dari tabel mahasiswa,
sebagai berikut :
CREATE
INDEX idx_nama_fakultas_nim ON mahasiswa(nama, fakultas, nim) TABLESPACE INDX;
Kemudian user melakukan query sebagai berikut :
SELECT *
FROM mahasiswa WHERE fakultas=’teknik’;
Pada saat melakukan query ini, index tidak akan digunakan
karena kolom pertama (nama) tidak digunakan dalam klausa WHERE. Jika user
sering melakukan query ini, maka kolom index harus diurutkan menurut fakultas.
SELECT *
FROM mahasiswa WHERE nim BETWEEN 5302411050 AND 5302411105;
Query ini akan melakukan “scan” terhadap sedikit
data block jika tabel mahasiswa diatas diurutkan berdasarkan kolom nim.
Alternatif yang lain, bisa digunakan perintah untuk
membuat tabel lain yang memiliki urutan yang berbeda dari tabel asal, seperti
perintah SQL berikut :
CREATE TABLE
mahasiswa_urut AS SELECT * FROM mahasiswa ORDER BY nim;
Pada SQL diatas, tabel mahasiswa_urut berisi data
yang sama dengan tabel mahasiswa
hanya datanya terurut berdasarkan kolom nim.
B. Faktor Lain yang Berpengaruh Terhadap
Kecepatan Akses Data
1. Optimasi Aplikasi
Dalam pembuatan aplikasi, yang perlu mendapat
perhatian adalah apakah akses terhadap data sudah efisien. Efisien dalam hal
penggunaan obyek yang mendukung kecepatan akses, seperti index atau cluster.
Kemudian juga bagaimana cara database didesain.
Apakah desain database sudah melakukan normalisasi
data secara tepat. Kadangkala normalisasi sampai level yang kesekian, tidak
menjamin suatu desain yang efisien. Untuk membuat desain yang lebih tepat,
kadang setelah melakukan normalisasi perlu dilakukan denormalisasi. Misalnya
tabel yang hubungannya one-toone dan sering diakses bersama lebih baik
disatukan dalam satu tabel.
2. Cluster dan Index
Cluster adalah suatu segment yang menyimpan data
dari tabel yang berbeda dalam suatu struktur fisik disk yang berdekatan.
Konfigurasi ini bermanfaat untuk akses data dari beberapa tabel yang sering
di-query. Penggunaan cluster secara tepat dilaksanakan setelah menganalisa
tabel-tabel mana saja yang sering di-query secara bersamaan menggunaan perintah
SQL join.
Jika aplikasi sering melakukan query dengan
menggunakan suatu kolom yang berada pada klausa WHERE, maka harus digunakan
index yang melibatkan kolom tersebut. Penggunaan index yang tepat bergantung
pada jenis nilai yang terdapat dalam kolom yang akan diindex. Dalam RDBMS
Oracle, index B-Tree digunakan untuk kolom yang mengandung nilai yang cukup
bervariasi, sedangkan untuk nilai yang tidak memiliki variasi cukup banyak,
lebih baik menggunakan index bitmap.
Baca selengkapnya »
0 komentar:
Posting Komentar