Indici multipli sulla stessa colonna

Indici multipli sulla stessa colonna
Fino alla release Oracle 11g non era possibile creare più di un indice sulla stessa colonna di una tabella.
A partire da Oracle 12c, è possibile creare indici multipli sulla stessa colonna a patto che gli index type siano differenti. Tuttavia, solo un tipo di indice è utilizzabile/visibile in un dato momento.
Per testare gli indici invisibili, è necessario settare dei parametri sull’init.ora:
optimizer_use_use_invisible_indexes = true;
Non utilizzare la clausola INVISIBLE causerà il seguente errore:
ORA-01408: such column list already indexed
Un esempio:
create unique index test_idx1 on test_tab (id1);
index created.
create index test_idx2 on test_tab(id1);
SQL Error: ORA-01408: such column list already indexed
Invece usando la clausola INVISIBLE …
create unique index test_ idx1 on test_tab(id1);
index created.
create index test_idx2 on test_tab(id1) invisible;
index created.
Per vedere il dato nel dizionario …
select index_name, uniqueness, partitioned, visibility
from user_indexes where table_name=’TEST_TAB’
order by index_name;
INDEX_NAME UNIQUENESS PARTITIONED VISIBILITY
————– ———- ———– ———-
TEST_IDX1 UNIQUE NO VISIBLE
TEST_IDX2 NONUNIQUE NO INVISIBLE

Potrebbero interessarti anche...