Is there a way to create, by default, an index in UNUSABLE state?

  • From: Luis Santos <lsantos@xxxxxxxxx>
  • To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 16 Aug 2019 14:09:15 -0300

Hi ORACLE-L!

I'm planning to perform a big schema transfer, using impdp by network_link.
The schema has few big tables, with several partitions, subpartitions and
indexes. So we have just eight tables but 3760 distinct index segments.

When using network_link feature the impdp doesn't create the indexes
concurrently.

I measured the time impdp took to create the indexes, and it last 19 hours.
We are performing several tests before the real production move.

I have done a test, putting all indexes from these 8 tables unusable, and
rebuilded them using (undocomented, I know...) package dbms_index_utl,
procedure build_schema_indexes. The concurrent rebuild tooks 45 minutes,
indeed using all machine (CPU, IO) resources.

I was wondering, for next test, a way to make impdp create the indexes
already unusable. We are using TABLE_EXISTS_ACTION=REPLACE on IMPDP, as
each day the partitions changes (day rolling window) in the source database.

If this were possible the process would be too much easily to design. I
don't want to generate indexes script and manually create them, appending
the UNUSABLE clause...


*--*
*Att*


*Luis Santos*

Other related posts: