Kbase P134680: Increasing temptable blocksize decreases performance due to DBI growth.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  27/02/2009 |
|
Status: Verified
SYMPTOM(s):
Increasing temptable blocksize decreases performance due to DBI growth.
After upgrading to OpenEdge 10.1B the DBI size increases.
FACT(s) (Environment):
Increasing tmpbsize from 1kb to 8kb increases DBI size substantially.
All Supported Operating Systems
All Supported Operating Systems
Progress/OpenEdge Product Family
CHANGE:
Upgraded to 10.1B
CAUSE:
Increasing the temptable blocksize will increase the amount initially allocated for temptables. The more temptables that are defined, the more memory/DBI space is consumed.
Using an 8kb temptable blocksize will allocate approximately 8 times the amount compared to using a 1kb blocksize.
Note that it is only the initial allocation that increases to this degree. When the temptables actually get used then they are more comparable.
For example:
1kb blk 8kb blk
Defining only 442368 3538944
Populating 15884288 17629184
Due to the increase in temptable space allocation, if the DBI file is being used a lot more then it can negatively impact performance especially when large numbers of users are involved.
In 10.1B the default temptable blocksize has been increased from 1kb to 4kb.
FIX:
There are a couple of solutions to the problem:
1. Decrease the temptable blocksize by using the -tmpbsize parameter:
-tmpbsize 1
2. Increase the amount of memory each client allocates for temptable buffers by using the -Bt parameter. The DBI file is used once the temptable buffers have all been filled. Note that this memory is allocated for EACH CLIENT. Increasing this parameter on a system that doesn't have adequate memory can cause negative performance.
The -Bt parameter specifies the number of buffers to allocate, each buffer is the size of a temptable block.
In Progress versions up to 10.0B the default is -Bt 10.
In Progress version 10.1A onward the default is -Bt 255.