重庆oracle认证培训机构

新闻分类

产品分类

热门关键词

联系我们

企业名称:重庆赛烽达科技有限公司

联系人:程老师

手机:13372708242

邮箱:xqzhang@saifengda.com

网址:www.cqora.com

地址:重庆石桥铺高创锦业17-3

重庆oracle培训课程-oracle碎片整理

您的当前位置: 首 页 >> 新闻资讯 >> 常见问题

重庆oracle培训课程-oracle碎片整理

发布日期:2018-09-27 作者: 点击:

FSFI 的最大可能值为 100 (一个理想的单文件表空间)。随着范围的增加, FSFI 值缓慢下降,而随着最大范围尺寸的减少, FSFI 值会迅速下降。


下面的脚本可以用来计算 FSFI 值:

 select tablespace_name,sqrt(max(blocks)/sum(blocks))*  

(100/sqrt(sqrt(count(blocks)))) FSFI  

from dba_free_space  

group by tablespace_name order by 1;


统计出了数据库的 FSFI 值,就可以把它作为一个可比参数。在一个有着足够有效自由空间,且 FSFI 值超过 30 的表空间中,很少会遇见有效自由空间的问题。当一个空间将要接近可比参数时,就需要做碎片整理了。


1、自由范围的碎片整理


表空间的 pctincrease 值为非 0

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

alter tablespace temp

default storage(pctincrease 1);

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

alter tablespace temp coalesce;



2、段的碎片整理


  我们知道,段由范围组成。在有些情况下,有必要对段的碎片进行整理。要查看段的有关信息,可查看数据字典 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


本文网址:http://www.cqora.com/news/586.html

关键词:

最近浏览:

相关产品:

相关新闻:

报名咨询

点击咨询报名

赛烽达QQ群

赛烽达技术群

程老师

13372708242

加微信咨询

张老师微信.jpg

xqzhang@saifengda.com