Indeks Unik Oracle

Indeks Unik Oracle



Prestasi pangkalan data adalah salah satu peranan penting pembangun pangkalan data. Memastikan pangkalan data anda berjalan pada prestasi optimum boleh memberi kesan ketara kepada aplikasi membaca atau menulis ke pangkalan data tersebut.

Walaupun banyak cara untuk meningkatkan prestasi pangkalan data wujud, satu ciri adalah hampir universal untuk mana-mana pangkalan data. Indeks pangkalan data ialah struktur data atau objek yang digunakan untuk meningkatkan kelajuan pengambilan data daripada jadual.

Apabila digunakan dengan betul, indeks pangkalan data boleh mengurangkan kelajuan pertanyaan sebanyak hampir separuh, bergantung pada data sasaran, reka letak, sumber yang tersedia, dsb.







Dalam tutorial ini, anda akan belajar cara bekerja dengan indeks unik dalam pangkalan data Oracle untuk menghalang ketersediaan nilai pendua dalam lajur yang diindeks.



Indeks Unik Oracle

Kita boleh menggunakan indeks unik untuk memastikan tiada baris pendua disimpan dalam lajur tertentu. Jika lajur indeks tertentu mengandungi peraturan unik, percubaan untuk menambah dua baris dengan nilai yang serupa dalam lajur itu akan mengakibatkan ralat yang menunjukkan pelanggaran kekangan unik.



Dalam Oracle, kita boleh mencipta indeks unik menggunakan pernyataan CREATE UNIQUE INDEX seperti yang ditunjukkan dalam yang berikut:





BUAT nama indeks INDEKS UNIK PADA nama_jadual ( lajur ) ;

Lajur yang disertakan dalam indeks tidak akan menerima sebarang baris pendua.

Contoh Ilustrasi Jadual Unik

Untuk menunjukkan cara membuat dan menggunakan indeks unik, ambil jadual berikut:



PILIH * DARI sample_data;

Pengeluaran :

Buat Indeks Unik pada Lajur First_Name

Pernyataan contoh berikut menunjukkan cara membuat indeks unik menggunakan lajur first_name:

buat indeks_nama_unik pada sampel_data ( nama pertama ) ;

Dengan mendayakan indeks ini, kami tidak boleh memasukkan lebih daripada satu baris dengan nama pertama yang sama.

Ambil contoh pernyataan sisipan berikut:

masukkan ke dalam data_sampel ( ID , nama_pertama, alamat_ip, alamat_btc, kad_kredit, pengecam )
nilai ( sebelas , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Jika kita menjalankan pernyataan sisipan yang diberikan, kita sepatutnya mendapat ralat seperti yang ditunjukkan dalam yang berikut:

[ 23000 ] [ 1 ] ORA-00001: kekangan unik ( HR.FIRST_NAME_UNIQUE ) dilanggar

Seperti yang kita dapat lihat, memasukkan nilai yang diberikan melanggar kekangan unik untuk lajur first_name.

Buat Indeks Unik dengan Dua Lajur

Kita juga boleh mempunyai indeks unik yang terdiri daripada lebih daripada satu lajur. Dalam contoh berikut, kami mencipta indeks unik menggunakan lajur first_name dan io_address:

buat lajur pengesahan indeks unik pada data_sampel ( nama_pertama, alamat_ip ) ;

Begitu juga, menambah nilai pendua sama ada untuk lajur first_name atau ip_address akan mengakibatkan ralat pelanggaran indeks yang unik.

Indeks Unik Automatik

Pernahkah anda terfikir apa yang berlaku apabila anda mengisytiharkan lajur jadual dengan kunci utama atau kekangan unik?

Secara ringkas, jika anda menetapkan lajur sebagai kunci utama jadual atau memberikan kekangan unik kepada lajur tertentu, enjin pangkalan data secara automatik mencipta indeks unik untuk lajur itu.

Ini memastikan tiada nilai pendua disisipkan dalam lajur itu.

Ambil contoh pernyataan berikut:

buat sampel_data jadual
(
ID nombor,
nama_pertama  varchar2 ( lima puluh ) ,
ip_address  varchar2 ( dua puluh ) ,
btc_address varchar2 ( lima puluh ) ,
kad kredit varchar2 ( lima puluh ) ,
pengecam varchar2 ( 40 ) ,
kekangan sample_pk kunci utama ( ID )
) ;

Dalam contoh sebelumnya, kami mencipta jadual dan menetapkan lajur id sebagai kunci utama jadual. Kemudian, untuk melihat kekangan unik yang dikaitkan dengan lajur itu (dijana secara automatik), kita boleh menjalankan arahan berikut:

pilih nama_indeks, jenis_indeks, keterlihatan, status, TABLE_NAME
daripada semua_indeks di mana TABLE_NAME = 'SAMPLE_DATA' ;

Keputusan :
Dalam kes ini, kita boleh melihat indeks unik yang dicipta oleh enjin pangkalan data untuk lajur id.

Kesimpulan

Dalam panduan ini, anda belajar cara mencipta dan menggunakan indeks unik dalam pangkalan data Oracle. Anda juga mengetahui perkara yang berlaku apabila anda menetapkan kunci utama atau kekangan unik pada lajur jadual.