Oracle查询索引碎片及数据表空间使用情况

--检查索引碎片情况,只能对单个表进行分析。
--需要注意块的大小、索引的pctfree的值的大小、rowid的长度的不同,根据不同的情况修改相应的值

按 Ctrl+C 复制代码

 

按 Ctrl+C 复制代码

索引碎片比较严重的话,重建索引:

复制代码

--ALTER INDEX indexName rebuild online nologging;

DECLARE 
    CURSOR myCur IS
        select INDEX_NAME from user_indexes WHERE TABLE_NAME=upper('tableName') AND INDEX_TYPE='NORMAL';
    v_cname myCur% rowtype;
    vsSql varchar2(256);
begin
open myCur;   
    loop      
       fetch myCur into v_cname;     
       exit when myCur% notfound;                        
       vsSql:='ALTER INDEX ' || v_cname.INDEX_NAME  || ' rebuild online nologging';
       EXECUTE IMMEDIATE vsSql;
    end loop;  
 close myCur;
end;

复制代码

 

查看指定数据表的空间分配及实际使用情况:

按 Ctrl+C 复制代码

 

按 Ctrl+C 复制代码

大量删除数据后的高水位线,造成表扫描性能问题,释放数据空间

复制代码

--删除数据后,释放数据空间
alter table tableName enable row movement;
alter table tableName shrink space cascade;
alter table tableName disable row movement;

  http://www.cnblogs.com/linjiqin/archive/2012/01/15/2323030.html

  http://blog.csdn.net/wyzxg/article/details/5631721

复制代码

 

附,更新统计信息、清空缓存

复制代码

--analyze table 更新统计信息:
analyze table my_table compute statistics; 
--OR
EXEC DBMS_STATS.gather_table_stats(ownname => 'socct', tabname =>'tableName', estimate_percent =>100, cascade =>true, method_opt => 'for all columns size auto');

--清空缓存(共享池和数据缓存),Command window执行:
alter system flush shared_pool;
alter system flush buffer_cache;

复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值