The solution more often employed is to load a small sample of your data into a table, say 100 rows of representative data. Then use the DBMS_SPACE package to determine how much space those 100 rows take up. If you know that you will have 1 million rows in the end, then multiply the space you calcuated above by 10,000 to figure out how much space 1 million rows would require. Or, you could compute statistics on that table, query DBA_TABLES for the AVG_ROW_LEN and multiply by 1 million rows.
Knowing the rate of growth is a different thing, but still very
important. Oracle does have a Capacity Planner option for its
Enterprise Manager product. The Capacity Planner will take a snapshot
of your current system disk needs. Then after some time, you cake
another snapshot. Knowing the difference in sizes and the time span,
you can easily calculate the growth rate. The Capacity Planner is part
of OEM's Diagnostic Pack and costs extra money. If you do not use this,
then you can create your own custom grown system.
This was first published in March 2004