估算表占用的空间

来源:互联网 发布:照片装饰软件下载 编辑:程序博客网 时间:2024/04/29 22:36

SQL> create table cmdb.tx tablespace users as select * from dba_objects;

SQL> exec dbms_stats.gather_table_stats('CMDB','TX',cascade=>true);


PL/SQL 过程已成功完成。

conn cmdb/cmdb

SQL> select avg_row_len from user_tables where table_name='TX';


AVG_ROW_LEN
-----------
         97


如果能预估出后期表的记录数N,最终表的占用空间为:97bytes*N


SQL> select segment_name,segment_type,bytes from user_segments where segment_name in ('TX','TX_IND');

SEGMENT_NA SEGMENT_TY      BYTES
---------- ---------- -                           ---------
TX_IND     INDEX                           2097152
TX         TABLE                              9437184



SQL> SELECT TRUNC((2097152/9437184)*100) IND_PERCENT from dual;

IND_PERCENT
-----------
         22


表+表上共占空间为:97bytes*N(1+22%)


摘自《让oracle跑得更快》

原创粉丝点击