--检查索引碎片情况,只能对单个表进行分析。
--需要注意块的大小、索引的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;