Oracle podržava
dva tipa particionisanih indeksa:
localni (local) i globalni (global) indeks.
Lokalni je jednako particionisan kao njemu
odgovarajuća tabela, dakle svaka particija tabele ima odgovarajuću
particiju indeksa.
Održavanje je jednostavno, npr.
- kada se obriše paricija automatski nestaje i indeks,
- kada se dodaje particija, particija indeksa se automatski dodaje.
Nasuprot
lokalnih, globalni indeksi mogu biti particionisani nezavisno od bazne tabele.
Npr. Oracle8i globalni
indeksi nisu upotrebljivi kada se radi neka operacija na particiji glavne
tabele.
Oni se nakon ove
operacije izgrađuju (rebuild). Dodavanje podataka neće učiniti
indeks nedostupnim, ali ALTER TABLE...DROP PARTITION hoće.
U ovom slučaju
opcije su:
1. Rekreirati indeks (Rebuild) ili
2. Obrisati i ponovo kreirati (Drop and re-create)
Primer kada moramo kreirati globalni indeks je unique indexes nad kolonom koja nije deo ključa particije.
Druga
mogućnost je da kolonu koja treba da bude unique indeks uvrstimo u listu
particionisanih kolona.
Primer globalnog indeksa
Kakvog je tipa indeks?
Podatak je u LOCALITY.DBA_PART_INDEXES
SQL> select LOCALITY,INDEX_NAME,PARTITIONING_TYPE
from DBA_PART_INDEXES;
LOCALI INDEX_NAME PARTITI
------ ------------------------------ -------
LOCAL
LOGMNRC_GTLO_PK
RANGE
LOCAL
LOGMNRC_GTCS_PK
RANGE