SQL with Oracle, Indeks pada Tabel
April 28, 2008
Sebagaimana pebahasan pada view sebelumnnya, salah satu yang dapat mempermudah kita dalam pengambilan data berdasarkan query tertentu selain menggunakan view ialah memberikan indeks pada record dalam tabel. Selain pencarian, indeks juga berguna untuk melakukan pengurutan data.
Hal yang paling utama dalam mengakses data adalah kecepatan. Semakin cepat data diambil semakin cepat data diproses sehingga semakin cepat urusan diselesaikan. Untuk mempercepat pembacaan data dalam tabel maka sebaiknya dibuatkan sebuah indeks.
Indeks
Untuk pencarian data pada tabel dari sebuah basisdata setidaknya memiliki dua metoda pencarian. Metoda pertama, menggunakan Metoda Akses Bertahap/ Sequential Access Method yang mengharuskan SQL memeriksa satu persatu record berdasarkan primary key sebagai pembading data uniknya. Metoda pencarian ini tidak efisien, namun satu-satu cara default SQL dalam melakukan pencarian data/ record.
Cara kedua dengan menggunakan Metoda Akses Langsung/ Direct Access Method yang dimana diimplementasikan dengan memberikan indeks pada record dalam database. Melalui metoda ini SQL digunakan layaknya sturuktur pohon dalam penyimpanan dan mendapatkan kembali indeks dari sebuah data/record. Pointer pada sekolompok data disimpan diatas pohon, kelompok ini disebut juga dengan istilah nodes/ titik. Masing-masing titik berisi pointer ke titik lainnya.
Untuk membuat indeks pada sebuah tabel gunakan sintaks berikut:
CREATE INDEX namaindex ON namatabel(kolom_yang _mau_diindex1, kolom_yang_mau_diindex2, …);
Sedangkan untuk menghapus suatu indeks gunakan sintaks berikut:
DROP INDEX namaindex
Menyambung pembahasan VIEW kemarin, maka tidak ada salahnya dalam membuat contoh kita menggunakan data dari tabel perusahaan, rekening, dan akun_bank yang telah kita buat bersama sebelumnya.
Sebagai contoh, dibuat indeks untuk mempercepat pencarian data rekening terurut berdasarkan id_akun, maka berikan perintah:
CREATE INDEX rek_id_akun_idx ON rekening (id_akun);
SELECT * FROM rekening;
DROP INDEX rek_id_akun_idx;
Kadangkalanya pada suatu kolom/ atribut, suatu tabel memiliki dua atau lebih data yang sama, misal untuk tabel rekening dimana id_akun terdapat data yang duplikat. Untuk lebih mengefisienka ruang, maka pembuatan indeks pun dapat diset untuk unique. Sintaksnya sebagai berikut:
CREATE UNIQUE INDEX namaindex ON namatabel(kolom_yang _mau_diindex1, kolom_yang_mau_diindex2, …);
Contoh :
CREATE UNIQUE INDEX rek_idx_unique ON rekening(id_akun, id_perusahaan)
Untuk mendeletenya sama dengan mendelete indeks biasa diatas, yaitu:
DROP INDEX rek_idx_unique;
Entry Filed under: Pemograman dan Database. Tag: Pemograman dan Database; Data Base.






Trackback this post | Subscribe to the comments via RSS Feed