有个ORACLE碎片整理的问题,请教一下
我有个库中的某个表空间,统计到的FSFI值只是5.XXXXXX我执行了alter tablespace SDATA coalesce;
但一天了也没有反应,FSFI一点变化也没有用alter tablespace SDATA default storage(pctincrease 1);的话报错:ORA25143:efault storage clause is not compatible with allocation policy
表空间的属性如下:
TABLESPACE_NAME SDATA
BLOCK_SIZE 8192
INITIAL_EXTENT 1048576
NEXT_EXTENT 1048576
MIN_EXTENTS 1
MAX_EXTENTS 2147483645
PCT_INCREASE 0
MIN_EXTLEN 1048576
STATUS ONLINE
CONTENTS PERMANENT
LOGGING LOGGING
FORCE_LOGGING NO
EXTENT_MANAGEMENT LOCAL
ALLOCATION_TYPE UNIFORM
SEGMENT_SPACE_MANAGEMENT MANUAL
DEF_TAB_COMPRESSION DISABLED该怎么处理呢?附:
统计FSFI的SQL
select tablespace_name,sqrt(max(blocks)/sum(blocks))* 
(100/sqrt(sqrt(count(blocks)))) FSFI 
from dba_free_space 
group by tablespace_name order by 1; 

解决方案 »

  1.   


    ORA-25143: default storage clause is not compatible with allocation policy 
    Cause: default storage clause was specified for a tablespace with AUTOALLOCATE or UNIFORM policy
     
    Action: Omit the storage clause 
    刚看到这个概念,故google了下。有可能是这个参数限制了
    ALLOCATION_TYPE UNIFORM 
      

  2.   


    alter tablespace 表空间名 coalesce; 
    alter table 表空间名 shrink space; 楼主可以参考下这篇帖子..
    http://topic.csdn.net/u/20081129/10/2169cc72-59c2-4e82-a2b2-d415bebb3c74.html
      

  3.   

    我的数据库是9i
    shrink space 不能在9i下跑吧
      

  4.   

    给这个表空间添加新的数据文件。要shrink只能是用逻辑导出导入叻。
      

  5.   

    我整理了一个瞬间就完成了,但fsfi值没有变化,我的数据库是9.2,原来的pctincrease 值是50,借楼主一贴我也求助高人了!