oracle 碎片是什么,什么是Oracle碎片拾掇?

oracle 表空间 表权限 用户

对Oracle归档模式的切换技术理解

Access数据库成功导入Oracle库方法

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 的表空间中,很少会碰见有效自由空间的问题。应一个空间快要切近可比参数时,就需要做碎片收拾了。

四、自由范畴的碎片拾掇

表空间的 pctincrease 值为非 零

可以将表空间的缺省储存参数 pctincrease 改成非 零 。正常将其设为 一 ,如:

alter tablespace temp

default storage(pctincrease 一);

这么 SMON 便会将自由范畴自动归拢。

也可以手工归拢自由范畴:

alter tablespace temp coalesce;

五、段的碎片拾掇

我们晓得,段由范畴结成。在有点情况下,有必要对段的碎片开展拾掇。要查看段的相关信息,可查看数据字典 dba_segments ,范畴的信息可查看数据字典 dba_extents 。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值