Creating large indexes in Oracle

DB - Oracle 11g

Creating large locally partitioned indexes on  huge partitioned table,

1. Define the index unusable and invisible with parallel and nologging options.
 CREATE BITMAP INDEX "DWH_SLT"."IND_SL2008_NONROM_MOB_NO_HIST" ON "DWH_SLT"."SLT_NON_ROM_2008_09_HIST" ("MOBILE_NO") 
 nologging local unusable parallel 6 invisible tablespace SLT_OCS_INDX1;  
2. Rebuild each local partition of the index . eg.
1:  alter index "DWH_SLT"."IND_SL2008_NONROM_MOB_NO_HIST" rebuild partition CDR_14_JAN3_N parallel(degree 6);  
2:  alter index "DWH_SLT"."IND_SL2008_NONROM_MOB_NO_HIST" rebuild partition CDR_14_FEB1_N parallel(degree 6);  
This can be done by lopping through all the index partitions via a procedure. After this all index partitions needs to be usable.

3. Make the index logging and disable parallel.
 alter index DWH_SLT.IND_SL2008_NONROM_MOB_NO_HIST logging noparallel;  
4. Make the index visible.
 alter index DWH_SLT.IND_SL2008_NONROM_MOB_NO_HIST visible;  

Comments

Popular posts from this blog

ORA-16433: The database or pluggable database must be opened in read/write

Wait for unread message on broadcast channel - Blocking Sessions

ORA-14126 - While splitting max value partition