降低高水位 oracle

前端之家收集整理的这篇文章主要介绍了降低高水位 oracle前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、重新分析表和索引。

select  'ANALYZE INDEX OWNER.'|| T.segment_name || ' COMPUTE STATISTICS;' from dba_segments t where t.segment_type ='INDEX' AND t.OWNER='OWNER';
select  'ANALYZE TABLE OWNER.'|| T.segment_name || ' COMPUTE STATISTICS;' from dba_segments t where t.segment_type ='TABLE' AND t.OWNER='OWNER';

2、将表、索引占用空间从大到小列出来。

select T.segment_name,T.segment_type,T.BYTES/(1024*1024)  from USER_SEGMENTS T order by T.BYTES DESC;

3、从列表中从大到小开始收缩高水位。
--表
ALTER TABLE TABLENAME ENABLE ROW MOVEMENT;
ALTER TABLE TABLENAME SHRINK SPACE CASCADE;
--索引
ALTER INDEX INDEXNAME SHRINK SPACE CASCADE;


4、如果是表,则重建索引。

ALTER INDEX IDEXNAME REBUILD;

5、再分析收缩的表或索引。
--表
ANALYZE TABLE TABLE_NAME COMPUTE STATISTICS FOR TABLE FOR ALL INDEXES FOR ALL INDEXED COLUMNS;
--索引
ANALYZE index INDEXNAME COMPUTE STATISTICS FOR TABLE FOR ALL INDEXES FOR ALL INDEXED COLUMNS;
6、重复2>3>4>5 原文链接:https://www.f2er.com/oracle/213377.html

猜你在找的Oracle相关文章