Index
Plecând de la una sau mai multe coloane ale unui tabel se poate crea un index,
care este o componentă a bazei de date.
După ce indexul s-a creat, nu apar sarcini de gestiune a lui de către utilizator, el este
actualizat automat de sistem la modificarea datelor din tabel.
In continuare vom considera numai indecşi normali (construiţi ca B-arbori) şi indecşi bitmap.
Observaţie. Se crează automat indecşi pentru coloanele incluse în restricţiile de tip PRIMARY KEY şi UNIQUE KEY.
Indexuri suplimentare se pot crea în următoarele situaţii:
- Există multe interogări care selectează un număr mic de înregistrări.
- Sunt multe interogări care folosesc clauze WHERE pentru unele coloane, iar condiţiile sunt cu operatorul "=".
- Coloanele folosite la indexare se utilizează în operaţii de join.
Instrucţiunea pentru crearea indexurilor este:
CREATE [UNIQUE | BITMAP] INDEX [schema.]nume_index
ON [schema.]nume_tabel (col [ASC | DESC] [, col [ASC | DESC]] ...)
[atribute_index]
unde atribute_index este o combinaţie dintre următoarele (s-au precizat numai o parte din lista de opţiuni posibile):
TABLESPACE {spatiutabel|DEFAULT}
PCTFREE int
PCTUSED int
INITRANS int
MAXTRANS int
STORAGE parametri-memorare
Observaţii:
- Cu opţiunea UNIQUE se precizează că lista de coloane are valori unice.
Fără această opţiune pot să existe duplicări a valorilor.
- Cu opţiunea BITMAP se precizează că indexul este bitmap.
La acest tip de index pentru fiecare valoare a expresiei de index se crează un şir de biţi, câte un bit
pentru fiecare înregistrare. Cu astfel de index-uri se pot efectua operaţii binare (and, or, not) la obţinerea răspunsului.
- Opţiunile UNIQUE şi BITMAP nu pot să apară simultan într-o instrucţiune de creare a unui index.
Modificarea definiţiei unui index
ALTER INDEX nume-index STORAGE parametri-memorare
ALTER INDEX nume-index_vechi RENAME TO nume-index_nou
ALTER INDEX nume-index REBUILD
Stergerea unui index
DROP INDEX nume-index