Happy3w

整理碎片

2017.08.18
在系统运行了一段时间后,我们发现删除订单的操作非常慢,后来发现最根本的原因是这个表的碎片太多了,而造成碎片太多的原因是运算要频繁的对订单表进行增、删操作,因此,需要及时清理碎片。 分析碎片的sql如下: SQL> select OWNER,SEGMENT_NAME,sum(bytes/1024/1024) from dba_segments where segment_name in('MM_PLO','MM_PLO_TEST') AND OWNER='NC60_BIGDATA' GROUP BY SEGMENT_NAME,OWNER; OWNER SEGMENT_NAME SUM(BYTES/1024/1024) ------------------------------ ------------------------------ -------------------- NC60_BIGDATA MM_PLO 4480 NC60_BIGDATA MM_PLO_TEST 544 其中MM_PLO是计划订单的数据表,而MM_PLO_TEST这个表则是根据计划订单建的测试表。从上面分析来看MM_PLO占了4.4G,而MM_PLO_TEST却只有544M. 解决的办法就是“alter table move”,并重建索引,语句如下: alter table 表名 move; alter index 索引名rebuild parallel 1;