Oracle Create Index

Oracle Create Index



V zbirkah podatkov Oracle se indeks nanaša na podatkovno strukturo, ki poveča hitrost operacij iskanja podatkov v tabeli baze podatkov. Vendar pa je to lahko posledica dodatnih operacij pisanja in prostora za shranjevanje v vaši bazi podatkov.

En primer, kje bi bil indeks baze podatkov uporaben, je sistem za upravljanje odnosov s strankami.







V takem sistemu imamo lahko tabelo baze podatkov, ki hrani podatke o strankah. To lahko vključuje ime, naslov, načine plačila, kontaktne podatke itd.



Če tabela vsebuje veliko zapisov, morda na milijone, lahko traja dolgo časa in sredstev za iskanje določenih informacij o strankah v bazi podatkov. To je negativen pojav, zlasti v bazah podatkov, kjer je zmogljivost kritična.



Da bi to zaobšli, lahko uporabimo indeks baze podatkov.





Ustvarimo lahko na primer indeks v stolpcu z imenom stranke, ki bi sistemu baze podatkov omogočil hitro iskanje in pridobitev podatkov o določeni stranki z uporabo imena. Zato namesto, da bi motor baze podatkov šel skozi vse vrstice in stolpce v tabeli, uporablja samo indeks za iskanje informacij o strankah.

V tej vadnici se boste naučili, kako uporabiti ukaz CREATE INDEX v bazi podatkov Oracle za inicializacijo novega indeksa.



Oracle Create Index Statement

Naslednje prikazuje sintakso stavka CREATE INDEX v zbirkah podatkov Oracle:

CREATE INDEX ime_indeksa
ON ime_tabele (stolpec1, stolpec2, ...);

Zgornja sintaksa ustvari indeks z imenom ime_indeksa v tabeli z imenom ime_tabele z uporabo podanih stolpcev (stolpec1, stolpec2 itd.) kot ključa za indeks.

V Oraclu je primarni ključ stolpec ali niz stolpcev, ki enolično identificira vsako vrstico v tabeli. Oracle privzeto samodejno ustvari edinstven indeks v stolpcih primarnega ključa tabele, da uveljavi omejitev edinstvenosti in izboljša učinkovitost iskanja primarnega ključa.

Vendar pa boste v nekaterih primerih morda morali ročno ustvariti nov indeks za določeno tabelo.

Oglejmo si nekaj primerov, kako lahko to dosežemo.

Primer ustvarjanja indeksa Oracle

Recimo, da imamo tabelo s podatki o zaposlenih, kot je prikazano v spodnjem izhodu:

izberite ime, priimek, plačo, datum zaposlitve od ZAPOSLENIH;

Oracle Ustvari indeks za en stolpec

Recimo, da želimo ustvariti indeks z uporabo stolpca first_name. Izvedemo lahko poizvedbo, kot je prikazano:

ustvari indeks first_name_lookup na EMPLOYEES(FIRST_NAME);

Ta stavek CREATE INDEX ustvari indeks z imenom first_name_lookup v tabeli EMPLOYEES z uporabo stolpca FIRST_NAME kot ključa za indeks. Ta indeks je mogoče uporabiti za izboljšanje učinkovitosti poizvedb, ki iščejo zaposlene po njihovem imenu.

Ko ustvarimo indeks, ga lahko uporabimo za iskanje določenega zaposlenega, kot je prikazano:

IZBERITE ime, priimek, plača, datum zaposlitve
OD zaposlenih
WHERE first_name = 'William';

rezultat:

Brez indeksa first_name_lookup bi sistem zbirke podatkov moral pregledati celotno tabelo EMPLOYEES, da bi našel vse vrstice, kjer je stolpec FIRST_NAME enak 'William'. Vendar pa lahko sistem baze podatkov z vzpostavljenim indeksom hitro poišče vrstice v indeks z uporabo vrednosti 'John' kot ključa in nato pridobitev zahtevanih vrstic iz tabele, kar bo veliko hitreje.

Ogledate si lahko korake, uporabljene pri izdelavi poizvedbe z ukazom razloži načrt, kot je prikazano:

pojasnite načrt za SELECT first_name, last_name, salary, hire_date
OD zaposlenih
WHERE first_name = 'William';

Končni načrt poizvedbe:

Primer 2 – Oracle Ustvari indeks z več stolpci

Podobno lahko ustvarimo indeks, sestavljen iz več kot enega stolpca v dani tabeli. Denimo, da želimo ustvariti indeks, sestavljen iz stolpca first_name in last_name.

Uporabimo lahko prikazano kodo:

ustvari indeks multi_lookup na EMPLOYEES(FIRST_NAME, LAST_NAME);

Ta stavek CREATE INDEX ustvari indeks z imenom multi_lookup v tabeli EMPLOYEES, pri čemer uporabi stolpca FIRST_NAME in LAST_NAME kot ključa za indeks.

Ko je ustvarjen, lahko uporabimo ta indeks, kot je prikazano v vzorčni poizvedbi, kot je prikazano:

IZBERITE ime, priimek, plača, datum zaposlitve
OD zaposlenih
WHERE first_name = 'William' AND last_name = 'Smith';

Končna vrednost:

In tam imate metodo za pospešitev poizvedb po bazi podatkov z uporabo indeksov za omejitev obsega iskanja.

Zaključek

Stavek CREATE INDEX v Oraclu nam omogoča, da ustvarimo indeks v tabeli, da izboljšamo zmogljivost operacij iskanja podatkov. Čeprav lahko indeksi izboljšajo zmogljivost poizvedb, povzročijo tudi kazen prostora za shranjevanje, kar vodi do zmanjšane hitrosti zapisovanja, uporabljajte jih le, kadar je to potrebno.