Sunteți pe pagina 1din 9

INDEXAREA BAZELOR DE DATE

Marcu Ruxandra
Informatica Anul II

SCOPUL INDEXARII TIPURI DE INDEX CREAREA UNUI INDEX STERGEREA UNUI INDEX

CONCLUZII
BIBLIOGRAFIE

SCOPUL INDEXARII

Indexarea in sistemul ORACLE are doua principale scopuri: - pentru a accelera afisarea liniilor cu o cheie particulara

- pentru a forta unicitatea valoriilor din coloane, de obicei valorile cheii principale

TIPURI DE INDEX

Fisierele index simple ( cu extensia .IDX), care contin o singura cheie de ordonare; Fisiere index compuse ( cu extensia .CDX), care memoreaza mai multe chei de ordonare, numite etichete, una singura fiind active la un moment dat si anume eticheta active.

CREAREA UNUI INDEX

Crearea unui fisier index simplu este data de comanda INDEX:


CREATE [UNIQUE] INDEX index_name ON table (column [m])

Crearea unui fisier index compus: INDEX ON <expr> TO <fisier.idx> | TAG <nume eticheta> [OF <fisier.cdx>][ FOR <exp L>][ ASCENDING | DESCENDING ][ UNIQUE ]

STERGEREA UNUI INDEX

Pentru a sterge definitia unui index din tabela de date, introduceti:


DROP INDEX index_name; Un index nu poate fi modificat.

Cand este folosit un INDEX?

Depinde de optimizatorul ORACLE in momentul executiei. ORACLE 7 permite ambele metode de optimizare SQL:

Functie de un set de reguli Functie de cost

Utilizarea indexarii
Functie de cost

Functie de un set de reguli

Modulul de optimizare bazat pe costul executiei decide un plan de executie pentru o secventa SQL calculand costul cailor alternative folosind informatii statistice acumulate daca este posibil. De obicei se va decide cea mai buna cale de utilizare a unui index. Sugestii pentru INDEXARE:

Indecsii de pe coloane trebuie adresati in clauza WHERE:

Urmatoarea interogare nu foloseste un index atata timp cat clauza WHERE nu este prezenta:
SELECT ENAME,JOB,SAL,COM FROM EMP;

Urmatoarea interogare va folosi un index pe coloana ENAME:


SELECT * FROM EMP WHERE ENAME=JHONES;

O tabela cu mai mult de 200 linii va beneficia din indexare pentru imbunatatirea performantelor, daca mai putin de 10% din linii vor fi intoarse in cazul unei interogari. Indexati toate coloanele acolo unde sunt cerute valori unice.

Daca doua sau mai multe coloane sunt utilizate in mod frecvent impreuna in clauza WHERE sau JOIN atunci creeati un index concatenat. (CONCATENATED INDEX) Evitati mai mult de trei indexi pentru o tabela. In acest caz va fi o supraincarcare in cazul unei operatii DML.

Un index nu va fi folosit daca coloana referita in clauza WHERE face parte dintr-o expresie sau functie. Exemplul urmator nu foloseste index deoarece coloana este parte a unei functii:
SELECT * FROM EMP WHERE UPPER (ENAME) =JHONES;

Concluzii

Indecsii - instrument ideal pentru imbunatatirea performantei unei baze de date; Cu cat avem mai multi indecsi, cu atat avem raspunsuri mai prompte; Numarul de indecsi in cazul bazelor de date la care operatiile de inserare, stergere si actualizare sunt frecvente trebuie limitat; Indecsii pot fi folositi in mod extensiv pentru optimizarea accesului la date in cazul bazelor de date la care domina operatiile de tip regasire.

Bibliografie

Dollinger, Robert, Bazele de date si gestiunea tranzactiilor, Ed. Albastra, ClujNapoca, 1998, pp. 139-141;

Voica, Vasilica, Sisteme informatice cu baze de date, Universul juridic, Bucuresti, 2005, pp. 106-110.