Originally posted by marist89
1. Put some sample data in the table
2. analyze the table
3. look at the average row size
4. multiply * number of expected rows

Code:
SQL> create table xyz (x number(10), y varchar2(20), z date);

Table created.
SQL> declare
  2     i number;
  3  begin
  4     i:= 0;
  5     while ( i < 1000 ) loop
  6        i:= i+1;
  7        insert into xyz values (i, to_char(i), sysdate);
  8     end loop;
  9  end;
 10  /

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.
SQL> analyze table xyz compute statistics;

Table analyzed.
SQL> select avg_row_len from user_tables where table_name = 'XYZ';

AVG_ROW_LEN
-----------
         19
If you expect this row to have 1,000,000 records, it would be approximate 19,000,000 bytes.
Jeff,

thanks for the response.

I have two questions:
1. how does Oracle calculate on the AVG_ROW_LEN, based on what???

2. based on your example, you mentioned that let's say AVG_ROW_LEN=19, what do you mean by "If I expect this row to have 1,000,000 record", you mean 1,000,000 rows to to be inserted into this table????

Thanks