龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle碎片整理全面解析(1)(2)

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
4、自由范围的碎片整理 表空间的 pctincrease 值为非 0 可以将表空间的缺省存储参数 pctincrease 改为非 0 。一般将其设为 1 ,如: alter tablespace temp default sto

4、自由范围的碎片整理

表空间的 pctincrease 值为非 0

可以将表空间的缺省存储参数 pctincrease 改为非 0 。一般将其设为 1 ,如:

alter tablespace temp

default storage(pctincrease 1);

这样 SMON 便会将自由范围自动合并。也可以手工合并自由范围:

alter tablespace temp coalesce;

5、段的碎片整理

我们知道,段由范围组成。在有些情况下,有必要对段的碎片进行整理。要查看段的有关信息,可查看数据字典 dba_segments ,范围的信息可查看数据字典 dba_extents 。

查询数据段

select segment_name,tablespace_name,bytes,blocks from USER_EXTENTS;

查询索引段

select index_name,table_owner,table_name,tablespace_name from USER_EXTENTS;

通过dba_segments查看段的信息

select tablespacee_name,count(*) nobjects,round(sum(bytes)/1024/1204/1024.2) GB,sum(blocks),sum(extents) from

dba_segments group by rollup(tablespace_name);

如果段的碎片过多,将其数据压缩到一个范围的最简单方法便是用正确的存储参数将这个段重建,然后将旧表中的数据插入到新表,同时删除旧表。这个过程可以用 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

上文中就Oracle数据库中的碎片做了详细的解析,通过本文的学习相信大家都已经掌握了Oracle碎片的整理,要想成为一名合格的数据库管理员,这篇文章就千万不要错过哦。

精彩图集

赞助商链接