5.段的碎片整理

段由范围组成,在某些情况下,整理段的碎片是必要的。要查看段的相关信息,可以查看数据字典DBA_segments,而范围的信息则可以通过数据字典DBA_extents获得。如果段的碎片过多,最简单的方法是将数据压缩到一个范围内。这可以通过将段重建并使用正确的存储参数来完成。然后,将旧表中的数据插入新表,并删除旧表。这个过程可以使用import/export(输入/输出)工具来完成。

export()命令提供了一个压缩标志,该标志会在读取表时触发,export会计算该表所分配的物理空间,并将新的初始化存储参数写入输出转储文件。若表关闭,则可以使用import()工具重新生成表数据。这样,表数据会放入一个新的、较大的初始段中。示例如下:

exp user/password file=exp.dmp compress=y grants=y indexes=y tables=(table1,table2);

若输出成功,可从数据库中删除已导出的表,然后从转储文件中重新导入表:

imp user/password file=exp.dmp commit=y buffer=64000 full=y;

此方法可用于整个数据库的优化。此外,应定期shutdown database,以清理内存碎片。