Did this article resolve your question/issue?



Grow the before image file (.bi) with bigrow to improve performance

« Go Back


TitleGrow the before image file (.bi) with bigrow to improve performance
URL NameP2676
Article Number000151543
EnvironmentProduct: OpenEdge
Version: All supported versions
OS: All supported platforms
Question/Problem Description
Grow the before image file (.bi) with bigrow to improve performance
Improve Performance, preformat the .bi file ( bigrow )
How performance can be improved with bigrow before starting the database
Should the bi file be truncated every night?
Is it a best practice to truncate a bi file on a nightly basis?
After truncating the bi performance drops
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
The before image file (.bi) grows as needed through daily transactions.  The problem can be that all transactions must wait while the before image file (.bi) is growing by adding more bi clusters to the chain and pre-formatting blocks.

If the .bi file is allowed to mature and is not truncated, then these performance pauses will no longer be observable after the initial instance, every well tuned application has a 'sweet point' that the bi file will grow under 'normal' operations.  From time to time, the bi needs to be truncated and these pauses will be experienced again until the bi file finally matures.  Under these circumstances, pre-formatting, or growing, the bi file in advance will get around this performance issue.  The performance hit is effectively transferred from database runtime to database startup.

The 'bigrow' utility was introduced in Progress 7.3E and needs to be run offline, prior to starting the database:

SYNTAX: proutil [ dbname ] -C bigrow {number}

[number] = number of clusters above the initial 4 clusters
( [number] + 4 ) * [the size of bicluster] = pre-formatted bytes of bi growth

Example:  The following command will result in 10 clusters of bi growth prior to starting the database.

$   proutil dbname -C bigrow 6
Last Modified Date11/20/2020 7:35 AM
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.