表对象个数:
总表数目:28397
形如'SYS_IOT_TRNS_%'的表数目:13780 
形如:'SYS_IOT_OVER_%'的表数目:14029 
其他表: 588  其中:1w行以上:0 ;1k-1w行:不到10个;大部分表中数据小于100行(并且每行,都没有大数据)数据文件大小:
6271565824 dpipe_overflow_seg_001.dbf                    DPIPE_OVERFLOW_SEG 
2341478400 dpipe_summary_ind_seg_001.dbf              DPIPE_SUMMARY_IND_SEG 
8154808320 dpipe_summary_seg_001.dbf                   DPIPE_SUMMARY_SEG 
另外,系统中的表有大量的分区表。从数据量上来看,占不来多少空间;但是现在的情况是,仅见最大的几个数据文件,就近17个G。请大家看看,问题出在哪里?有没有优化方法?

解决方案 »

  1.   

    http://blog.csdn.net/inthirties/archive/2009/09/09/4531986.aspx
      

  2.   

    贴出表空间使用情况,大家看看!
        表空间名 表空间大小(M) 已使用空间(M) 使用比 空闲空间(M) 最大块(M)
    1 DPIPE_SUMMARY_SEG 7777 7776.87 100 0.13 0.13
    2 SYSTEM 800 798.44 99.81 1.56 0.94
    3 DPIPE_OVERFLOW_SEG 5981 5957.94 99.61 23.06 2.63
    4 SYSAUX 1090 1066.31 97.83 23.69 3.94
    5 DPIPE_SUMMARY_IND_SEG 2233 2131.94 95.47 101.06 68.94
    6 DPIPE_PROPERTY_SEG 61 50 81.97 11 0.38
    7 DPIPE_DEFAULT_SEG 91 71.12 78.15 19.88 6.75
    8 DPIPE_PROPERTY_IND_SEG 46 34.69 75.41 11.31 2
    9 DPIPE_EVENT_IND_SEG 91 67.31 73.97 23.69 10.19
    10 DPIPE_EVENT_SEG 186 134.62 72.38 51.38 44.13
    11 DPIPE_RATE_IND_SEG 308 66.44 21.57 241.56 70.94
    12 DPIPE_RATE_SEG 616 131.87 21.41 484.13 143.13
    13 UNDOTBS1 165 21.31 12.92 143.69 41
    14 USERS 5 0.44 8.8 4.56 4.56
    15 DPIPE_UPLOAD_SEG 345 14.62 4.24 330.38 6.5
    16 DPIPE_UPLOAD_IND_SEG 345 5.06 1.47 339.94 17
    17 DPIPE_ARCHIVE_SEG 92 0.12 0.13 91.88 91.88
    18 DPIPE_ARCHIVE_IND_SEG 92 0.06 0.07 91.94 91.94
    如表中所示的情况, 是否可以通过导出导入的方法缩减空间吗?
      

  3.   

    oracle 10g下 shrink收缩表的前提条件
     1、表必须启用row movement
     2、表段所在表空间的段空间管理(segment space management)必须为auto
    --1.查看表空间段管理是否为auto,为auto的才可以做收缩shrink
    select tablespace_name,segment_space_management from dba_tablespaces;--2.查看做收缩shrink前表占用的blocks
    select    SEGMENT_NAME ,BLOCKS  from dba_segments where segment_name=&TABLE_NAM; --3.启用row movement
    alter table  &TABLE_NAME enable row movement;--4.收缩shrink表
    alter table &TABLE_NAM shrink space;
    --5.查看做收缩shrink后表占用的blocks
    select    SEGMENT_NAME ,BLOCKS  from dba_segments where segment_name=&TABLE_NAM; 
      

  4.   

    实践表明通过exp/imp方式导出后,需要对表做analyze后,才可以缩小表占用的空间analyze table &table_name  compute statistics ;详见 http://blog.csdn.net/lwei_998/archive/2010/01/14/5189136.aspx