Unikátní index Oracle

Unikatni Index Oracle



Výkon databáze je jednou ze základních rolí vývojáře databáze. Zajištění optimálního výkonu databáze může významně ovlivnit čtení nebo zápis aplikací do této databáze.

Přestože existuje mnoho způsobů, jak zlepšit výkon databáze, jedna funkce je téměř univerzální pro jakoukoli databázi. Databázové indexy jsou datové struktury nebo objekty, které se používají ke zvýšení rychlosti získávání dat z tabulky.

Při správném použití mohou databázové indexy snížit rychlost dotazu téměř o polovinu v závislosti na cílových datech, rozložení, dostupných zdrojích atd.







V tomto kurzu se naučíte, jak pracovat s jedinečnými indexy v databázích Oracle, abyste zabránili dostupnosti duplicitních hodnot v indexovaném sloupci.



Unikátní index Oracle

Můžeme použít jedinečný index, abychom zajistili, že v daném sloupci nebudou uloženy žádné duplicitní řádky. Pokud sloupec daného indexu obsahuje jedinečné pravidlo, pokus o přidání dvou řádků s podobnou hodnotou do tohoto sloupce povede k chybě, která označuje jedinečné porušení omezení.



V Oracle můžeme vytvořit jedinečný index pomocí příkazu CREATE UNIQUE INDEX, jak je znázorněno v následujícím:





CREATE UNIQUE INDEX index_name ON table_name ( sloupců ) ;

Sloupce, které jsou součástí indexu, nepřijímají žádné duplicitní řádky.

Příklad jedinečné tabulky ilustrace

Chcete-li předvést, jak vytvořit a používat jedinečný index, použijte následující tabulku:



VYBRAT * Z ukázkových_dat;

Výstup :

Vytvořte jedinečný index ve sloupci First_Name

Následující příklad příkazu ukazuje, jak vytvořit jedinečný index pomocí sloupce first_name:

vytvořit jedinečný index first_name_unique na sample_data ( jméno ) ;

Povolením tohoto indexu nemůžeme vložit více než jeden řádek se stejným křestním jménem.

Vezměte si například následující příkaz vložení:

vložit do sample_data ( id , křestní_jméno, ip_adresa, btc_adresa, kreditní_karta, identifikátor )
hodnoty ( jedenáct , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Pokud spustíme daný příkaz insert, měli bychom dostat chybu, jak je znázorněno v následujícím:

[ 23 000 ] [ 1 ] ORA-00001: jedinečné omezení ( HR.FIRST_NAME_UNIQUE ) porušeno

Jak vidíme, vložení dané hodnoty porušuje jedinečné omezení pro sloupec first_name.

Vytvořte jedinečný index se dvěma sloupci

Můžeme mít také jedinečný index, který se skládá z více než jednoho sloupce. V následujícím příkladu vytvoříme jedinečný index pomocí sloupců first_name a io_address:

vytvořit jedinečný index ověřovací_sloupce pro vzorová_data ( jméno, ip_adresa ) ;

Podobně přidání duplicitních hodnot do sloupce first_name nebo ip_address bude mít za následek jedinečné chyby narušení indexu.

Automatické jedinečné indexy

Přemýšleli jste někdy, co se stane, když deklarujete sloupec tabulky s primárním klíčem nebo jedinečným omezením?

Jednoduše řečeno, pokud nastavíte sloupec jako primární klíč tabulky nebo k danému sloupci přiřadíte jedinečné omezení, databázový stroj automaticky vytvoří jedinečný index pro tento sloupec.

To zajistí, že do tohoto sloupce nebude vložena žádná duplicitní hodnota.

Vezměte si například následující prohlášení:

vytvořit tabulku sample_data
(
id číslo,
jméno  varchar2 ( padesátka ) ,
ip_adresa  varchar2 ( dvacet ) ,
btc_address varchar2 ( padesátka ) ,
kreditní_karta varchar2 ( padesátka ) ,
identifikátor  varchar2 ( 40 ) ,
omezení primární klíč sample_pk ( id )
) ;

V předchozím příkladu vytvoříme tabulku a nastavíme sloupec id jako primární klíč tabulky. Poté, abychom viděli jedinečné omezení spojené s tímto sloupcem (automaticky generované), můžeme spustit následující příkaz:

vybrat index_name, index_type, viditelnost, stav, TABLE_NAME
z all_indexes kde TABLE_NAME = 'VZOREK DAT' ;

Výsledek :
V tomto případě vidíme jedinečný index, který je vytvořen databázovým strojem pro sloupec id.

Závěr

V této příručce jste se naučili, jak vytvořit a používat jedinečné indexy v databázi Oracle. Také jste se dozvěděli, co se stane, když sloupci tabulky přiřadíte primární klíč nebo jedinečné omezení.