Consultor Eletrônico



Kbase P5654: When should an index be compacted?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   11/11/2008
Status: Verified

GOAL:

When should an index be compacted?

GOAL:

How to compact indexes?

FACT(s) (Environment):

Progress 9.x
All Supported Operating Systems
OpenEdge 10.x

FIX:

The "index factor" calculated in the dbanalys report helps to determine when an index needs rebuilding.

1.) Run proutil <db> -C dbanalys > dbanidx.txt

2.) For every index of at least 100 blocks in size, [check "BLOCKS" column]
if the associated Index "FACTOR" > 1.5, then the index should be compacted

3.) Use: proutil db-name -C idxcompact table-name.index-name [n]
to compact an index where:
+ table-name.index-name is the source table that contains the source index to be compacted
+ [n] is (optional) the degree of index compaction {>=50; <=100; default=80}

Index compaction is preferable to index rebuild because it can be run while the database is online, the compaction process locks only 4 blocks of the index:
the index block, its parent and two of the parent's siblings.

Index rebuild, NOT Index compact, must still be used after dump and load.