Kbase 20927: Improving Performance Using Areas in Version 9
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  7/15/2009 |
|
Status: Unverified
GOAL:
How to Improve Performance Using Areas
FACT(s) (Environment):
Progress 9.x
FIX:
By default in Progress 9.x, there are 64 records/block if you define an 8 K database block size or 32 for all other block sizes. Depending on the data stored in a record, the quantity of records can be optimized if they are stored in a block which allows small records to be packed in an area with a higher records/block ratio (up to 256 records/block). The database performance increases because it reads more records each time it fetches a block.
Follow these steps to define areas for a performance increase:
1) Start defining four kinds of record areas (a small with 128
records/block, a medium size with 64 records/block, a big area
with 32 records/block and an index area).
2) Create a .st file.
The following uses the Sports database and add.st as an
example:
# add.st
#
# This .st adds four new areas with a
# fixed extent of aprox. 500 MB and a variable one
# in the current directory
#
d "small",128 . f 512000
d "small" .
d "medium",64 . f 512000
d "medium" .
d "big",32 . f 512000
d "big" .
d "indx" . f 512000
d "indx" .
3) Add the new three areas using the command:
prostrct add <db name> <.st file>
For example:
prostrct add sports add.st
4) Move the tables to the corresponding area with the command:
proutil <db name> -C tablemove <table name> <area name>
For example:
proutil sports -C tablemove customer small
5) Move the indexes to the index area using:
proutil <db name> -C indexmove <index name> <area name>
For example:
proutil sports -C indexmove customer.cust-num indx