This issue has been addressed in Progress 9.1D.
PROMON -> 7. Database Status option will display a valid database-wide highwater mark
To understand how much of the allocated blocks are used up and by inference, what the true size of the Database is to monitor growth, the following example can be customised to requirements.
define variable v-prcnt_full as decimal format ">>9.99" label "% Full" no-undo.
define variable v-empty_blocks as decimal format ">>,>>>,>>9" label "Empty" no-undo.
define variable v-hiwater as decimal format ">>,>>>,>>9" label "Hiwater" no-undo.
define variable v-mb_used as decimal format ">>>,>>9.99" label "MB Used" no-undo.
define variable v-mb_avail as decimal format ">>>,>>9.99" label "MB Avail" no-undo.
define variable v-mb_tused as decimal format ">>>,>>9.99" label "Total MB used" initial 0.0 no-undo.
define variable v-mb_tavail as decimal format ">>>,>>9.99" label "Total MB avail" initial 0.0 no-undo.
/* OUTPUT TO storgeareasizes.out. */
FOR EACH _Area NO-LOCK:
FIND _Areastatus WHERE _Areastatus-Areanum = _Area._Area-number NO-LOCK.
v-hiwater = _AreaStatus-Hiwater.
if v-hiwater = ? then v-hiwater = 0.0.
v-empty_blocks = _AreaStatus-Totblocks - v-hiwater - _AreaStatus-Extents.
v-prcnt_full = (1.0 - (v-empty_blocks / _AreaStatus-Totblocks)) * 100.0.
v-mb_avail = v-empty_blocks / 1048576 * _Area-BlockSize.
v-mb_tavail = v-mb_tavail + v-mb_avail.
v-mb_used = v-hiwater / 1048576 * _Area-BlockSize.
v-mb_tused = v-mb_tused + v-mb_used.
DISPLAY
_Area-name LABEL 'Name' format "x(21)"
_Area-blocksize LABEL 'DBBlockSize'
_AreaStatus-Extents LABEL '#Extents' format ">>9" SKIP
_AreaStatus-Lastextent LABEL "HWM extent" SKIP
v-hiwater
v-empty_blocks
_AreaStatus-Totblocks - _AreaStatus-Extents LABEL 'T.Blocks' FORMAT ">>,>>>,>>9"
v-prcnt_full SKIP
v-mb_used
v-mb_avail.
END.
display v-mb_tused
v-mb_tavail.
/* OUTPUT close. */