How do i predict the near future size / development of an Oracle table?


  • linear development of the amount of rows
  • known posts of fundamental datatypes (char, number, and date)
    • disregard the variability of varchar2
    • fundamental knowledge of the area needed to keep them (e.g. number)
  • fundamental knowledge of blocks, extents, segments, and block overhead

I am searching for some thing positive than "measure now, wait, measure again."

  1. Estimate the typical row size according to your computer data types.
  2. Estimate the accessible space inside a block. This is the block size, without the block header size, without the space remaining by PCTFREE. For instance, in case your block header dimensions are 100 bytes, your PCTFREE is 10, as well as your block dimensions are 8192 bytes, then your free space inside a given block is (8192 - 100) * 0.9 = 7282.
  3. Estimate the number of rows will fit for the reason that space. In case your average row dimensions are 1 kB, then roughly 7 rows will easily fit in an 8 kB block.
  4. Estimate your rate of growth, in rows per time unit. For instance, should you anticipate millions of rows each year, your table will grow by roughly 1 GB yearly given 7 rows per 8 kB block.

I suspect the estimate will be based 100% around the problem domain. Your suggested method appears nearly as good an over-all procedure out of the box possible.

Given your presumptions, "measure, wait, measure again" is perfectly predictive. In 10g+ Oracle even does the "measure, wait, measure again" for you personally.