Oracle碎片拾掇全面解析

来源:未知 责任编辑:责任编辑 发表时间:2014-01-26 22:01 点击:

Oracle 作为一种特大型数据库,广泛应用于金融、邮电、电力、民航等数据吞吐量伟大,计算机网络宽泛推广的主要组织。至于系统管理员也就是说,何以责任书网络稳固运作,何以增高数据库性能,使其愈加保险高效率,便显得尤为重要。作为影响数据库性能的一大要素 -- 数据库碎片,应该唤起 DBA 的足够重视,及时发现并拾掇碎片就是 DBA 一项根本维护内容。

  一、碎片是何以发作的

  应生成一个数据库时,它会 分为号称表空间( Tablespace )的多个逻辑段( Segment ),如系统( System )表空间 , 暂时( Temporary )表空间等。一个表空间可以包孕多个数据范畴( Extent )和一个或多个自由范畴块,即自由空间( Free Space )。

  表空间、段、范畴、自由空间的逻辑关系如次:

  应表空间中生成一个段时,将从表空间有效自由空间中为这个段的初步范畴分配空间。在这些初步范畴充斥数据时,段会请求增多另一个范畴。这么的扩张历程会一直继续下去,直抵达到最大的范畴值,也许在表空间中已经没自由空间用来下一个范畴。最志向的状态乃是一个段的数据可被存在单调的一个范畴中。这么,全部的数据储存时挨近段内其它数据,而且寻觅数据可少用一些指针。但是一个段包孕多个范畴的状况是大量存在的,没任何措施可以军令状这些范畴是邻近储存的。应要满足一个空间要求时,数据库不再合龙紧邻的自由范畴(除非没法子),而是寻觅表空间中最大的自由范畴来运用。这么将渐渐形成越来越多的离散的、分隔的、较小的自由空间,即碎片。

  二、碎片对系统的影响

  跟着时间推移,基于数据库的运用系统的普遍运用,发作的碎片会越来越多,将对数据库有以次两点重要影响:

  一)招致系统性能减杀

  总的来说,应要满足一个空间要求时,数据库将第一查寻现阶段最大的自由范畴,而 " 最大 " 自由范畴渐渐变小,要找出一个足够大的自由范畴已变得愈来愈艰难,故此以致表空间中的速度障碍,使数据库的空间分配愈益远离志向状态;

  二)铺张大量的表空间

  固然有部分自由范畴(如表空间的 pctincrease 为非 零 )将会被 SMON (系统监控)后台老板历程周期性地归并,但始终有部分自由范畴没法方可自动合拢,铺张了大量的表空间。

  三、自由范畴的碎片计算

  因为自由空间碎片是由几一部分构成,如范畴数量、最大范围尺码等,我们可用 FSFI--Free Space Fragmentation Index (自由空间碎片目录)值来直观反映:

  FSFI=100*SQRT(max(extent)/sum(extents))*一/SQRT(SQRT(count(extents)))

  可以看出, FSFI 的最大或者值为 100 (一个志向的单资料表空间)。跟着范畴的增多, FSFI 值缓慢降落,而跟着最大范围分寸的减小, FSFI 值会迅速降落。

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

  rem FSFI Value Compute

  rem fsfi.sql

  column FSFI format 999,99

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

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

  from dba_free_space

  group by tablespace_name order by 一;

  spool fsfi.rep;

  /

  spool off;

  例如,在某数据库运作脚本 fsfi.sql, 失去以次 FSFI 值:

  TABLESPACE_NAME FSFI

  ------------------------------ -------

  RBS 74.06

  SYSTEM 100.00

  TEMP 22.82

  TOOLS 75.79

  USERS 100.00

  USER_TOOLS 100.00

  YDCX_DATA 47.34

  YDCX_IDX 57.19

  YDJF_DATA 33.80

  YDJF_IDX 75.55

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

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Table函数使用简介
  • Oracle数据库Constraint约束的常用操作及异常处理
  • Bulk Collect性能分析(zz)
  • export/import的使用
  • OCP043第十五讲 Database Security
  • ORACLE10gr2数据导入MySQL方案
  • oracle 让sys用户可以使用isqlplus
  • 在oracle数据库下使用iSQL*Plus DBA访问数据库
  • Oracle行列转换小结
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1