oracle碎片整理

概述

随着时间推移,数据库产生的碎片会越来越多,将对数据库有以下两点主要影响:一方面是系统性能减弱;另一方面造成大量空间的浪费。通过对碎片的整理,可以减少数据库服务器的IO读写次数、降低内存空间的使用率、加快表的访问速度。

状态描述

某客户营销系统日常运行中存在大量的delete与update操作,难免产生大量的碎片,对系统性能产生一定的影响。尤其是大表并且执行全表扫描的情况下,对系统的影响更大,此次优化主要针对这些对象进行处理。

实施过程

实施概述

由于该系统无法安排停机时间,无法使用导入导出方式进行整理,通过shrink方式进行碎片整理会分数据重组、HWM调整两个阶段进行,由于期间会产生锁,故该操作需要在系统较为空闲的时候进行,按步骤执行即可。

具体实施步骤

确定碎片情况

  • 确定全表扫描的表和碎片情况:

  • 从中找出io开销、碎片率较高且表较大的记录。

进行碎片整理

  • 检查操作系统版本
  • 确定表空间是否支持自动段空间管理

  • 开启行迁移

注:table_name为需要整理的表的名称

  • disable基于rowid的trigger

  • 开始数据重组(表和索引重组)

  • HWM调整

  • 重新rebuild索引

  • 重新启用触发器

回退步骤

回退步骤

由于是ddl操作,不具有回退性。

未经允许不得转载:Oracle一体机用户组 » oracle碎片整理

相关推荐