Kbase 19829: How to do On-line Index Compaction
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  03/03/2008 |
|
Status: Verified
GOAL:
How to do On-line Index Compaction
GOAL:
How to increases space utilization of the index block
FIX:
In Progress Version 8.x, the only way to improve an index's use of space is to rebuild the index with the off-line index rebuild utility. In Version 9.x there is a utility to compact index space utilization on-line. When the PROUTIL IDXANALYS utility indicates that space utilization of an index is reduced to 60% or less, use PROUTIL IDXCOMPACT to perform index compaction on-line.
Performing index compaction increases space utilization of the index block to the compacting percentage specified by n.
Syntax:
proutil db-name -C idxcompact [owner-name].table-name.index-name [n] n - Specifies the degree of index compaction. You can specify an integer >=50 and <=100. The default value is 80, if you do not specify n, 80 is used.
The index compacting utility operates 3 phases:
1) If the index is a unique index, the delete chain is scanned and the index blocks are cleaned up by removing deleted entries.
2) The nonleaf levels of the B-tree are compacted starting at the root working toward the leaf level.
3) The leaf level is compacted.
In addition to compacting an index, this utility clears dead entries left after entries have been deleted from unique indexes.
Because index compacting is performed on-line, other users can use the index simultaneously for read or write operation with no restrictions.
Index compacting only locks 1 to 3 index blocks at a time, for a short time. This allows full concurrency.