选择重组表的方法
可以通过两种方法来重组表:传统重组(脱机)和原位置重组(联机)。
缺省行为是脱机重组。要指定联机重组操作,请使用 REORG TABLE 命令的 INPLACE 选项。
另一种方法是,使用联机表移动存储过程进行原位置重组。请参阅“使用 ADMIN_MOVE_TABLE 过程以联机方式移动表”。
每种方法都有其优点和缺点,概述如下。选择重组方法时,应考虑哪种方法提供的优点是您优先要解决的方面。例如,如果发生故障时进行恢复比性能更重要,那么最好使用联机重组方法。
脱机重组的优点
此方法具有下列优点:
- 最快速的表重组操作,未包括大对象 (LOB) 或长字段数据时尤其如此
- 完成后将生成集群情况完美的表和索引
- 在表之后自动重建的索引已被重组;不需要执行单独的步骤来重建索引
- 使用临时表空间来构建影子副本;这降低了包含目标表或索引的表空间的空间需求
- 使用除集群索引以外的索引对数据进行重新集群
脱机重组的缺点
此方法具有下列缺点:
- 对表的访问受限:在重组操作的排序和构建阶段,只能进行读访问
- 正在重组的表的影子副本需要大量空间
- 对重组过程的控制能力较低;脱机重组操作无法暂停和重新启动
联机重组的优点
此方法具有下列优点:
- 除重组操作的截断阶段以外,允许对表进行全面的访问
- 对重组过程的控制能力较高,该过程以异步方式在后台运行,并可以被暂停、继续或停止;例如,如果正在对表运行大量的更新或删除操作,那么您可以暂停进行中的重组操作
- 重组过程在发生故障后可恢复
- 由于以递增方式处理表,因此降低了工作存储空间需求
- 重组的好处将立即体现,甚至可以在重组操作完成前体现
联机重组的缺点
此方法具有下列缺点:
- 数据或索引的集群情况并不完美,这取决于在重组操作期间访问表的事务的类型
- 与脱机重组操作相比,性能欠佳
- 日志记录需求可能较高,这取决于移动的行数、对表定义的索引数以及那些索引的大小
- 由于此过程执行的是索引维护操作而非重建操作,因此可能需要执行后续的索引重组操作
- 由于联机重新组织无法移动内部记录,因此空间回收不完整。
| 特征 | 脱机重组 | 联机重组 |
|---|---|---|
| 性能 | 快 | 慢 |
| 完成后数据的集群因子 | 良好 | 非最佳集群 |
| 并行性(对表的访问) | 从不能访问到只读访问 | 从只读访问到完全访问 |
| 数据存储空间需求 | 非常大 | 不是非常大 |
| 日志记录存储空间需求 | 不是非常大 | 非常大 |
| 用户控制(暂停和重新启动重组过程的能力) | 控制能力较低 | 控制能力较高 |
| 可恢复性 | 不可恢复 | 可恢复 |
| 索引重建 | 进行 | 不进行 |
| 支持所有类型的表 | 是 | 否 |
| 是否能够指定除集群索引以外的索引 | 是 | 否 |
| 是否使用临时表空间 | 是 | 否 |
| 表类型 | 是否受脱机重组支持 | 是否受联机重组支持 |
|---|---|---|
| 多维集群表 (MDC) | 是1 | 否 |
| 范围集群表(RCT) | 否2 | 否 |
| 追加方式表 | 是 | 否3 |
| 包含长字段或大对象 (LOB)数据的表 | 是4 | 是5 |
系统目录表:
|
是 | 否 |
|
注意:
|
||
监视表 reorg 操作的进度
有关当前表重组操作的进度信息将写入历史记录文件。历史记录文件包含每个重组事件的记录。要查看此文件,请对正在重组的表所在的数据库执行 LIST HISTORY 命令。
此外,也可使用表快照来监视表重组操作的进度。无论如何设置数据库系统监视器表开关,系统均会记录表重组监视数据。
如果发生错误,那么 SQLCA 消息将写入历史记录文件。对于原位置表重组操作而言,状态将被记录为 PAUSED。