Consultor Eletrônico



Kbase P18350: How to run the dbanalys command and interpret the data being obtained?
Autor   Marcos Kirchner - CAT
Acesso   Público
Publicação   5/5/2009
Status: Verified

GOAL:

How to interpret the information being reported by dbanalys''

GOAL:

Explanation of the dbanalys report.

GOAL:

What is dbanalys showing me''

GOAL:

How do I run dbanalys command on a database''

FACT(s) (Environment):

All Supported Operating Systems
Products / Versions

FIX:

The command to run a dbanalys is follows:

Command Syntax: proutil dbname -C dbanalys (This will result in output being directed to the screen. To direct output to a file for review use > output filename.)

Example: proutil dbname -C dbanalys > dbanalys.out

The results from the utility is segmented into 3 categories:

1. Free Chain Analysis
======================
"<n> block(s) found in the free chain"

This is the number of completely empty blocks that are available for use. They are listed in the free chain and are available for any usage.

2. RM Chain Analysis
====================
"LIST OF RM CHAIN BLOCKS"

These are the blocks that may (not guaranteed) have free space that are available to be used to add new records. Rather than read every RM (Record Manager) block to find one with free space, PROGRESS builds what is called an "RM Chain Block", that lists all the blocks with available space. Each block in the chain points to the dbkey of the next block.

The listing gives first the dbkey that is available, second the amount of free space in bytes, third the number of record slots in the block that are free, followed by the number of slots being used.

Valid Progress database block sizes are: .5K , 1K, 2K, 4K or 8K. The dbkey is the record id, a 32-bit binary number that contains 27 bits for the "Block Number" and 5 bits for the "Slot Number". The dbkey will never change unless you dump and reload the database. It is also possible for a record to span multiple blocks.

At the end of the chain list is the total amount of blocks in the RM free chain. The chain should be checked to be sure that the chain is not "clogged" with small size entries at the beginning. This can cause inefficient use of space, as a free (empty) block would be used rather than existing blocks from the RM chain list. Should this be the case, there are two of options:

1. Dump and reload the database to reformat the space and reallocate free space. This may not always be the best choice. Before doing a dump and load determine how well the database is allocated by checking the RM block space utilization percentage.(see the next section).

2. Try adding a number of smaller dummy records to remove the entries from the beginning of the chain. This sometimes works but in no way guarantees that the chain will not clog again later.

3. BLOCK ANALYSIS
=================

"<n> RM block(s) found in the database"
"<n>% of the RM block space is used"
-----------------------------------------

This is the total number of blocks in the Record Manager portion (data) of the database. The block size times the number of blocks will give the actual data size. The percentage should be between 70% and 90%. If it is below 70% then the database is a candidate for a dump and reload. If the size is over 90% then the database space is being allocated very well.

This figure must also be interpreted within the context of one's own database. If the database is very static, a high RM % is what is desired: a lot of data stored in the smallest area. In a dynamic situation with a lot of updates and additions, this may not be the best scenario, in that it could lead to the database being fragmented.

"<n> index block(s) found in the database"
"<n>% of the index block space is used"
------------------------------------------
This is the total number of Index Blocks (Indexes) of the database. The block size times the number of blocks will give the actual index size. On average, the index blocks are 60% to 75% full.

Index Block Summary
-------------------
Index name - The index name
Index - This is _Index._index-num
Blocks - The number of blocks for that index
Bytes - The number of bytes used by that index
%Utiliz - .The percentage of space used within the blocks allocated to that index. Should this percentage be less than 70% and the index is large, it would be an indication that the index should
be rebuilt.
% of all Indexes - This is the size of the index (%) as related to all the indexes. The larger the percentage, the greater impact of an index rebuild on space.

4. Summary
==========

1. Rebuild any large indexes under 70% utilization.

2. If RM block space is less than 70% utilization or exceeds 90%, then the database may be a candidate for a dump and reload to re-allocate space. Again, these numbers are a guideline only. Whether it should be dumped or left alone depends on how the data are used.

3. Check the RM chain list to make sure that the chain is not being clogged with small byte size records at the top of chain. A sign of a clogged chain is when the database appears to be growing when there have been numerous deletes. With each version of Progress improvements are made in the usage of RM chains, weighing performance against database space utilization.

4. Every Database is different. This has to be taken into account when evaluating any numbers that the Dbanalys should return. Be sure to understand the database being analyzed before making any decisions to dump and reload. Evaluate whether it is static or dynamic. Also note that in some cases where a database is spread across multiple disks, it may be best leaving it as is with regards to performance, because of the randomness in the physical distribution of the data..