Oracle Buat Indeks

Oracle Buat Indeks



Dalam database Oracle, indeks mengacu pada struktur data yang meningkatkan kecepatan operasi pengambilan data pada tabel database. Namun, hal ini mungkin menimbulkan penalti pada operasi tulis tambahan dan ruang penyimpanan di database Anda.

Salah satu contoh di mana indeks basis data akan berguna adalah dalam sistem manajemen hubungan pelanggan.







Dalam sistem seperti itu, kita dapat memiliki tabel database yang menyimpan informasi pelanggan. Ini dapat mencakup nama, alamat, metode pembayaran, informasi kontak, dll.



Jika tabel menyimpan banyak record, mungkin jutaan record, akan memakan waktu lama dan sumber daya untuk mencari informasi pelanggan tertentu dari database. Ini adalah fenomena negatif, terutama di database di mana kinerja sangat penting.



Untuk mengelilingi ini, kita dapat menggunakan indeks basis data.





Misalnya, kita dapat membuat indeks pada kolom nama pelanggan yang memungkinkan sistem basis data dengan cepat menemukan dan mengambil informasi pelanggan tertentu menggunakan nama tersebut. Oleh karena itu, alih-alih mesin database menelusuri semua baris dan kolom dalam tabel, ia hanya menggunakan indeks untuk mencari informasi pelanggan.

Dalam tutorial ini, Anda akan mempelajari cara menggunakan perintah CREATE INDEX di database Oracle untuk menginisialisasi indeks baru.



Pernyataan Indeks Buat Oracle

Berikut ini menunjukkan sintaks pernyataan CREATE INDEX di database Oracle:

BUAT INDEX index_name
ON table_name (kolom1, kolom2, ...);

Sintaks di atas membuat indeks bernama nama_indeks pada tabel dengan nama nama_tabel menggunakan kolom yang ditentukan (kolom1, kolom2, dll.) sebagai kunci untuk indeks.

Di Oracle, kunci utama adalah kolom atau kumpulan kolom yang secara unik mengidentifikasi setiap baris dalam tabel. Secara default, Oracle secara otomatis membuat indeks unik pada kolom primary key tabel untuk menerapkan batasan keunikan dan meningkatkan kinerja pencarian primary key.

Namun, dalam beberapa kasus, Anda mungkin perlu membuat indeks baru untuk tabel tertentu secara manual.

Mari kita lihat beberapa contoh bagaimana kita dapat melakukannya.

Oracle Buat Indeks Contoh

Misalkan kita memiliki tabel yang berisi informasi karyawan seperti yang ditunjukkan pada output di bawah ini:

pilih nama_pertama, nama_belakang, gaji, tanggal_pekerjaan dari KARYAWAN;

Oracle Buat Indeks untuk Satu Kolom

Misalkan kita ingin membuat indeks menggunakan kolom first_name. Kami dapat menjalankan kueri seperti yang ditunjukkan:

buat indeks first_name_lookup pada EMPLOYEES(FIRST_NAME);

Pernyataan CREATE INDEX ini membuat indeks bernama first_name_lookup pada tabel EMPLOYEES, menggunakan kolom FIRST_NAME sebagai kunci untuk indeks. Indeks ini dapat digunakan untuk meningkatkan performa kueri yang mencari karyawan berdasarkan nama depannya.

Setelah kami membuat indeks, kami dapat menggunakannya untuk mencari karyawan tertentu seperti yang ditunjukkan:

PILIH nama_pertama, nama_belakang, gaji, tanggal_pekerjaan
DARI karyawan
WHERE first_name = 'William';

Hasil:

Tanpa indeks first_name_lookup, sistem database harus memindai seluruh tabel EMPLOYEES untuk menemukan semua baris di mana kolom FIRST_NAME sama dengan 'William.' Namun, dengan indeks di tempat, sistem database dapat dengan cepat mencari baris di indeks menggunakan nilai 'John' sebagai kunci dan kemudian mengambil baris yang diminta dari tabel, yang akan jauh lebih cepat.

Anda dapat melihat langkah-langkah yang digunakan saat membuat kueri menggunakan perintah jelaskan rencana seperti yang ditunjukkan:

jelaskan rencana untuk SELECT first_name, last_name, salary, hire_date
DARI karyawan
WHERE first_name = 'William';

Rencana kueri yang dihasilkan:

Contoh 2 – Oracle Buat Indeks dengan Banyak Kolom

Demikian pula, kita dapat membuat indeks yang terdiri dari lebih dari satu kolom dalam tabel tertentu. Misalnya, kita ingin membuat indeks yang terdiri dari kolom first_name dan last_name.

Kita dapat menggunakan kode seperti yang ditunjukkan:

buat indeks multi_lookup pada EMPLOYEES(FIRST_NAME, LAST_NAME);

Pernyataan CREATE INDEX ini membuat indeks bernama multi_lookup pada tabel EMPLOYEES, menggunakan kolom FIRST_NAME dan LAST_NAME sebagai kunci indeks.

Setelah dibuat, kita dapat menggunakan indeks ini seperti yang ditunjukkan dalam kueri sampel seperti yang ditunjukkan:

PILIH nama_pertama, nama_belakang, gaji, tanggal_pekerjaan
DARI karyawan
DI MANA first_name = 'William' AND last_name = 'Smith';

Nilai yang dihasilkan:

Dan di sana, Anda memiliki metode untuk mempercepat kueri basis data Anda dengan menggunakan indeks untuk membatasi ruang lingkup pencarian.

Kesimpulan

Pernyataan CREATE INDEX di Oracle memungkinkan kita membuat indeks pada tabel untuk meningkatkan kinerja operasi pengambilan data. Namun, meskipun indeks dapat meningkatkan kinerja kueri, mereka juga dikenakan penalti ruang penyimpanan, yang menyebabkan operasi kecepatan tulis berkurang, gunakan hanya jika diperlukan.