We are using Informatica for ETL and the database is Oracle 11g.
We have a fact table (2 billion records) which is loaded daily. There are around 44 indexes for this fact table and the fact table is partitioned.
We are following the below process for the incremental load.
- Identify the partitions to be loaded from staging table. Usually there will be around 750k - 900k records for 3 to 4 partitions
- Create a temporary table and do a partition exchange from the fact table for the partitions
- Populate the incremental data from the staging table to the temporary table
- Do a partition exchange again to the fact table from the temporary table
- Rebuild the indexes
The total load time is around 8– 10 hours and rebuilding index is taking majority of the time (around 5-7 hours). The indexes are rebuild only for the partitions affected and all indexes are local indexes.
Can anyone suggest a faster way to rebuild the indexes?