网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 性能调优 > 使用Oracle功能特性提高应用执行效率-性能调优  

使用Oracle功能特性提高应用执行效率-性能调优

2008-04-15  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

数据库空间的有效使用和维护不仅是数据库管理的重要工作,也是大多数开发人员所关心的内容,因为它直接关系到数据库性能的发挥。同时数据碎片是经常令人头疼的问题,碎片不仅造成空间的浪费,更重要的是会直接影响应 用程序的响应速度。

Oracle提供了不少方法用于数据空间的使用、监控和维护,同时也在各版本中陆续对这方面的功能进行了增强,目的在于简化这方面工作的复杂度,提高应用的运行效率。

一、相关概念

数据库的空间在逻辑上分为多个表空间,每个表空间则由系统中的一个或多个物理数据文件构成;Oracle存储数据的基本单位是块,其大小在建库时由DB_BLOCK_SIZE参数确定,一个或多个连续的块构成一个区片(EXTENT),它作为数据对象存储的基本单位来使用。在Oracle中,每个基本数据对象使用的空间称为段(Segment),段存放在唯一的表空间上,每个段实际上是一系列区片(更为准确地是数据块)的集合。每个简单数据对象对应一个段;对于分区对象如分区表、索引,则每个(子)分区对应一个段,由各个(子)分区共同构成一个完整的数据对象。因此,可以把表空间看作桶,里面放着许多段;一个段只能放在一个桶中,而不能跨越多个桶。

二、表空间的使用

表空间碎片的产生

由于同一个表空间中存放有多个数据段,各个数据段可以有不同的区片尺寸,不同段的区片可以交叉存放;当这些段中的区片经过分配(如创建表)、释放(如删除表)后,就可能使表空间中原本连续的空闲数据块变成不连续,而区片必须由连续的数据块构成,这时,当某一段需要分配新的区片时,就有可能出现虽然表空间空闲数据块的总和大于所需区片的大小,但却无法找到一串连续的块来供此区片分配使用。这种情况就称为表空间的Extent Fragmentation。我们经常会遇到这种情况,明明从DBA_FREE_SPACE中计算表空间还有几百MB,但其中的某一个表却无法再扩展几个MB的空间。

消除表空间碎片

Oracle在段的区片分配上为用户提供了很大的灵活性,然而如果未能正确使用创建表空间和数据对象的各个可选择参数,则在最后将不可避免的要面对区片碎片的问题。Oracle 的Bhaskar Himatsingka 和 Juan Loaiza,为此提出了SAFE(Simple Algorithm for Fragmentation Elimination.)配制规则,通过遵循这套规则,区片级碎片可以完全的避免。而实际上,Oracle8i引入的新特性:Local Managed Tablespace就是SAFE规则在Oracle Server的内置实现。SAFE原则概括起来包括:

1. 对每个表空间上的段使用相同的区片尺寸;段参数INITIAL=NEXT,PCTINCREASE=0;可以通过使用Create Tablespace 的‘ MINIMUM EXTENT’ 子句来确保分配的区片是此参数的倍数;

2. 仅在表空间级指定INITIAL、NEXT参数,在创建数据段时不要指定这些参数;

3. 区片的大小根据段大小来确定,原则是均衡顺序扫描的效率和空间的利用率,同时确保段的区片数目控制在1024之下;根据此原则,在进行相应测试之后,确定以下区片选取规则: 网管u家u.bitsCN.com

 段大小(Oracle7)
区片大小(Oracle7)
段大小(Oracle8)
区片大小(Oracle8)
  
&160M
160K
&128M
128K
  
160M-5G
5M
128M-4G
4M
  
&5G
160M
&4G
128M 网管有家bitscn.net

网管u家u.bitsCN.com

有此数据库中可以只使用三种区片大小的表空间;在对象创建之前需对其大小进行评估,并放到相应的表空间中;   网管联盟bitsCN_com

网管u家bitscn.net

TAGs   执行   效率   性能   应用   提高   功能   特性   使用   空间   数据      
 上一篇:DBA应当如何查看Oracle数据库连接情况-性能调优   下一篇:Oracle中为什么会产生回滚与前退-性能调优
使用Oracle功能特性提高应用执行效率-性能调优 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: