Question Progress Data Types & Size

Saran

New Member
Hi Team,
I have a quick question on data types and its sizes. I would like to know the sizes of each data type (few of them may need calculations, but would like to have them documented for my calculation).


Let me give a quick background on why i need this data - I have a requirement from management where i need to calculate the storage space of one complete order. They will need this data to compute the growth in storage space vs their business.

INTEGER - 32 bits
INT64 - 64 bits
LOGICAL - 1 bit (may be am wrong, but as it needs to store either yes or no - my assumption is 1 bit)
CHARACTER - ? (not sure what is the static number that progress allocates. Is it 32K?)
DATE - ?
DATETIME - ?
LONGCHAR - ? (does progress allocated memory statically?)
DECIMAL - ?

Please let me know your questions if any. Thanks!

Regards,
Saravanakumar B
 

Cringer

ProgressTalk.com Moderator
Staff member
The trouble you will have is that each record will have a different size as it's not as clear-cut as you think. The easiest way to do this is to get a dbanalys output - "PROUTIL [dbname] -C dbanalys > [filename]" - in here you will find the mean size of each record in a table. Should save you calculating it yourself.
 

TomBascom

Curmudgeon
All Progress data is variable length. Even logical fields. The idea that a pre-defined allocation is made is one of the SQLisms that just doesn't translate to Progress.

As Cringer says, you can look at dbanalys to get an average of real data sizes.
 

RealHeavyDude

Well-Known Member
+1. The only way to predict database growth and space allocation is to monitor the database on that. One obvious way is the database analysis.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
There is information in the docs on data consumed by various data types, but as stated earlier that won't help as you need to know the data before you can do the calculation. Also, space consumed on disk is more than field sizes. There is also record overhead and block overhead. And if your storage areas aren't configured properly (e.g. records per block is set too low) then that far outweighs any other consideration like data type in terms of how fast your extents grow.

First make sure your storage areas are configured properly, then run a monthly db analysis and plot a trendline for your fast-growing tables.
 

Saran

New Member
Using "PROUTIL [dbname] -C dbanalys > [filename]" is a good idea than calculating field-wise, saved a lot of time. I agree Rob there are multiple other parameters like record/block overhead that needs to be taken into consideration. The requirement here is to calculate at a high level for now. I have provided the first set of data without taking these parameters into consideration, but will read through more on that and get help from our DBA's to get a second set of data which will be more accurate.

Thanks!
 

cj_brandt

Active Member
Oracle and some other RDBMS environments allocate a fixed amount of storage based on the column definition. Progress uses variable length for everything.
 
Top