|
Oracle数据库碎片整理(2) ----4、自由范围的碎片整理 ----(1)表空间的pctincrease值为非0 ----可以将表空间的缺省存储参数pctincrease改为非0。一般将其设为1,如: alter tablespace temp default storage(pctincrease 1); ----这样SMON便会将自由范围自动合并。也可以手工合并自由范围: alter tablespace temp coalesce; ----5、段的碎片整理----我们知道,段由范围组成。在有些情况下,有必要对段的碎片进行整理。要查看段的有关信息,可查看数据字典dba_segments,范围的信息可查看数据字典dba_extents。如果段的碎片过多, 将其数据压缩到一个范围的最简单方法便是用正确的存储参数将这个段重建,然后将旧表中的数据插入到新表,同时删除旧表。这个过程可以用Import/EXPort(输入/输出)工具来完成。 ----Export()命令有一个(压缩)标志,这个标志在读表时会引发Export确定该表所分配的物理空间量,它会向输出转储文件写入一个新的初始化存储参数--等于全部所分配空间。若这个表关闭,则使用Import()工具重新生成。这样,它的数据会放入一个新的、较大的初始段中。例如: exp user/passWord file=exp.dmp compress=Y grants=Y indexes=Ytables=(table1,table2); ----若输出成功,则从库中删除已输出的表,然后从输出转储文件中输入表:imp user/password file=exp.dmp commit=Y buffer=64000 full=Y ----这种方法可用于整个数据库。----以上简单分析了Oracle数据库碎片的产生、计算方法及整理,仅供参考。数据库的性能优化是一项技术含量高,同时又需要有足够耐心、认真细致的工作。 对数据库碎片的一点探讨, ----如果能起到抛砖引玉,对大家有所启发的话,便是作者最大的心愿。
|