Oracle Create Index

Oracle Create Index



În bazele de date Oracle, un index se referă la o structură de date care avansează viteza operațiunilor de regăsire a datelor pe un tabel al bazei de date. Cu toate acestea, acest lucru poate aduce o penalizare pentru operațiuni de scriere și spațiu de stocare suplimentar în baza de date.

Un exemplu de unde ar fi util un index al bazei de date este într-un sistem de management al relațiilor cu clienții.







Într-un astfel de sistem, putem avea un tabel de bază de date care stochează informații despre clienți. Acestea ar putea include numele, adresa, metodele de plată, informațiile de contact etc.



Dacă tabelul conține multe înregistrări, poate milioane dintre ele, poate dura mult timp și resurse pentru a căuta informații specifice despre clienți din baza de date. Acesta este un fenomen negativ, mai ales în bazele de date unde performanța este critică.



Pentru a circumnaviga acest lucru, putem folosi un index al bazei de date.





De exemplu, putem crea un index pe coloana cu numele clientului care ar permite sistemului de baze de date să găsească și să recupereze rapid informațiile unui anumit client folosind numele. Prin urmare, în loc ca motorul bazei de date să parcurgă toate rândurile și coloanele din tabel, folosește doar indexul pentru a căuta informații despre clienți.

În acest tutorial, veți învăța cum să utilizați comanda CREATE INDEX din baza de date Oracle pentru a inițializa un nou index.



Oracle Create Index Statement

Următoarele arată sintaxa instrucțiunii CREATE INDEX în bazele de date Oracle:

CREATE INDEX nume_index
ON table_name (coloana1, coloana2, ...);

Sintaxa de mai sus creează un index numit index_name pe tabel cu numele table_name folosind coloanele specificate (coloana1, coloana2 etc.) ca cheie pentru index.

În Oracle, o cheie primară este o coloană sau un set de coloane care identifică în mod unic fiecare rând dintr-un tabel. În mod implicit, Oracle creează automat un index unic pe coloanele cheii primare ale unui tabel pentru a impune constrângerile de unicitate și pentru a îmbunătăți performanța căutărilor cheii primare.

Cu toate acestea, în unele cazuri, poate fi necesar să creați manual un nou index pentru un anumit tabel.

Să ne uităm la câteva exemple despre cum putem realiza acest lucru.

Exemplu de creare a indexului Oracle

Să presupunem că avem un tabel care conține informații despre angajați, așa cum se arată în rezultatul de mai jos:

selectați prenumele, prenumele, salariul, data_angajării de la ANGAJAȚI;

Oracle Create Index pentru o singură coloană

Să presupunem că dorim să creăm un index folosind coloana first_name. Putem rula o interogare așa cum se arată:

creați index first_name_lookup pe EMPLOYEES(FIRST_NAME);

Această instrucțiune CREATE INDEX creează un index numit first_name_lookup pe tabelul EMPLOYEES, folosind coloana FIRST_NAME ca cheie pentru index. Acest index poate fi folosit pentru a îmbunătăți performanța interogărilor care caută angajați după prenume.

Odată ce avem indexul creat, îl putem folosi pentru a căuta un anumit angajat, după cum se arată:

SELECTează prenume, prenume, salariu, data_închiriere
DE LA angajați
WHERE prenume = 'William';

Rezultat:

Fără indexul first_name_lookup, sistemul de bază de date ar trebui să scaneze întregul tabel EMPLOYEES pentru a găsi toate rândurile în care coloana FIRST_NAME este egală cu „William”. Cu toate acestea, cu indexul la locul său, sistemul de bază de date poate căuta rapid rândurile din indexați folosind valoarea „John” ca cheie și apoi preluați rândurile solicitate din tabel, care va fi mult mai rapid.

Puteți vizualiza pașii utilizați la efectuarea interogării utilizând comanda explic plan așa cum se arată:

explicați planul pentru SELECT prenumele, prenumele, salariul, data_angajării
DE LA angajați
WHERE prenume = 'William';

Planul de interogare rezultat:

Exemplul 2 – Oracle Create Index cu mai multe coloane

În mod similar, putem crea un index format din mai mult de o coloană într-un tabel dat. De exemplu, să presupunem că vrem să creăm un index format din coloana first_name și last_name.

Putem folosi codul așa cum se arată:

creați index multi_lookup pe ANGAJĂȚI (FIRST_NAME, LAST_NAME);

Această instrucțiune CREATE INDEX creează un index numit multi_lookup pe tabelul EMPLOYEES, folosind coloanele FIRST_NAME și LAST_NAME ca cheie pentru index.

Odată creat, putem folosi acest index așa cum se arată în exemplul de interogare, așa cum se arată:

SELECTează prenume, prenume, salariu, data_închiriere
DE LA angajați
WHERE first_name = 'William' AND last_name = 'Smith';

Valoarea rezultată:

Și acolo, aveți o metodă de a accelera interogările bazei de date prin utilizarea indecșilor pentru a limita domeniul de căutare.

Concluzie

Instrucțiunea CREATE INDEX din Oracle ne permite să creăm un index pe un tabel pentru a îmbunătăți performanța operațiunilor de recuperare a datelor. Cu toate acestea, deși indexurile pot îmbunătăți performanța interogărilor, aceștia implică și penalități de spațiu de stocare, ceea ce duce la operațiuni cu viteză de scriere redusă, folosiți-i numai atunci când este necesar.