indexarea bazelor de date
Post on 23-Oct-2015
18 Views
Preview:
TRANSCRIPT
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 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:
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.
Functie de un set de reguli 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’;
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, Cluj-Napoca, 1998, pp. 139-141;
Voica, Vasilica, Sisteme informatice cu baze de date, Universul juridic, Bucuresti, 2005, pp. 106-110.
top related