The partition maintenance operations DROP
PARTITION
and TRUNCATE
PARTITION
are optimized by making the index maintenance for metadata only.
Asynchronous global index maintenance for DROP
and TRUNCATE
is performed by default; however, the UPDATE
INDEXES
clause is still required for backward compatibility.
The following list summarizes the limitations of asynchronous global index maintenance:
Only performed on heap tables
No support for tables with object types
No support for tables with domain indexes
Not performed for the user SYS
Maintenance operations on indexes can be performed with the automatic scheduler job SYS.PMO_DEFERRED_GIDX_MAINT_JOB
to clean up all global indexes. This job is scheduled to run at 2:00 A.M. on a daily basis by default. You can run this job at any time using DBMS_SCHEDULER.RUN_JOB
if you want to proactively clean up the indexes. You can also modify the job to run with a different schedule based on your specific requirements. However, Oracle recommends that you do not drop the job.
You can also force cleanup of an index needing maintenance using one of the following options:
DBMS_PART.CLEANUP_GIDX
- This PL/SQL procedure gathers the list of global indexes in the system that may require cleanup and runs the operations necessary to restore the indexes to a clean state.
ALTER
INDEX
REBUILD
[PARTITION
] – This SQL statement rebuilds the entire index or index partition as is done in releases previous to Oracle Database 12c Release 1 (12.1). The resulting index (partition) does not contain any stale entries.
ALTER
INDEX
[PARTITION
] COALESCE
CLEANUP
– This SQL statement cleans up any orphaned entries in index blocks.