今天查看业务单位的一个数据库的时候,发现索引表空间比数据表空间还大 ,我当时就想数据库中的表和索引肯定是好久没有进行碎片整理了,整理语句如下 ,复制出来后在sqlplus 中执行
--整理索引碎片
SELECT 'ALTER INDEX '||OWNER||'.'||INDEX_NAME||' shrink space ;'
FROM DBA_INDEXES
WHERE TABLE_OWNER='HA_SOAR'
ORDER BY INDEX_NAME;
--整理表碎片
SELECT 'ALTER table '||OWNER||'.'||table_NAME||' enable row movement ;'
FROM DBA_tables
WHERE OWNER='HA_SOAR'
union all
SELECT 'ALTER table '||OWNER||'.'||table_NAME||' shrink space ;'
FROM DBA_tables
WHERE OWNER='HA_SOAR'
union all
SELECT 'ALTER table '||OWNER||'.'||table_NAME||' disable row movement ;'
FROM DBA_tables
WHERE OWNER='HA_SOAR'