- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle 数据库在设计开发阶段性能优化策略
Oracle 数据库在设计开发阶段性能优化策略
【摘要】通过对Oracle 数据库系统物理结构和逻辑结构的分析,阐述了在Oralce 数据库设计开发阶段性能优化的一些策略和方法。
【关键词】Oracle 数据库 性能优化 策略
引言
Oracle 是目前使用最为广泛的大型数据库管理系统,提高Oracle 数据库系统的运行效率,是整个计算机信息系统高效运转的前提和保证。影响Oracle 数据库应用系统性能的因素很多,既有软件方面的因素,也包括数据运行的硬件环境、网络环境、数据库管理和维护方面的因素等。数据库系统设计开发阶段是Oracle 应用优化的最佳阶段,也是主动优化阶段,能达到以最小成本获得最大性能增益的目的。通过对其逻辑存储结构和物理存储结构设计进行优化,使之在满足需求条件下,时空开销性能最佳,可以解决数据库系统运行过程中性能的渐进性下降或性能突降等问题,以保证系统运行的优良性能。
1 Oracle 数据库的逻辑结构和物理结构
Oracle 数据库的逻辑结构是由一些数据库对象组成,如数据库表空间、表、索引、段、视图、存储过程、触发器等。数据库的逻辑存储结构(表空间等)决定了数据库的物理空间是如何被使用的,数据库对象如表、索引等分布在各个表空间中。
Oracle 数据库的物理结构从操作系统一级查看,是由一个个的文件组成,从物理上可划分为:数据文件、日志文件、控制文件和参数文件。
2 逻辑结构的优化
逻辑结构优化用通俗的话来说就是通过增加、减少或调整逻辑结构来提高应用的效率,下面通过对基本表的设计及索引、聚簇的讨论来分析ORACLE 逻辑结构的优化。
2.1 基本表扩展
数据库性能包括存储空间需求量的大小和查询响应时间的长短两个方面。为了优化数据库性能,需要对数据库中的表进行规范化。一般来说,逻辑数据库设计满足第三范式的表结构容易维护且基本满足实际应用的要求。在实际应用中设计人员一般都回你按照第三范式的标准进行规范化,且设计很多的表间关联,以尽可能地降低数据冗余,但在实际应用中这种做法有时不利于系统运行性能的优化。
为解决这一问题,在设计表时应同时考虑对某些表进行反规范化,方法有以下几种:一是分割表。分割表可分为水平分割表和垂直分割表两种:水平分割是按照行将一个表分割为多个表,这可以提高每个表的查询速度,但查询、更新时要选择不同的表,统计时要汇总多个表,因此应用程序会更复杂。垂直分割是对于一个列很多的表,若某些列的访问频率远远高于其它列,就可以将主键和这些列作为一个表,将主键和其它列作为另外一个表。通过减少列的宽度,增加了每个数据页的行数,一次I/O 就可以扫描更多的行,从而提高了访问每一个表的速度。但是由于造成了多表连接,所以应该在同时查询或更新不同分割表中的列的情况比较少的情况下使用。二是保留冗余列。当两个或多个表在查询中经常需要连接时,可以在其中一个表上增加若干冗余的列,以避免表之间的连接过于频繁,一般在冗余列的数据不经常变动的情况下使用。三是增加派生列。派生列是由表中的其它多个列的计算所得,增加派生列可以减少统计运算,在数据汇总时可以大大缩短运算时间。
2.2 索引和聚簇
创建索引是提高检索效率最有效的方法之一,索引把表中的逻辑值映射到安全的RowID,能快速定位数据的物理地址,可以大大加快数据库的查询速度,但并不是索引越多越好,在那些经常需要修改的数据列上建立索引,将导致索引的不断重组,造成系统性能的下降和存储空间的浪费。对于一个大型表建立的索引,有时并不能改善数据查询速度,反而会影响整个数据库的性能。这主要是和SGA 的数据管理方式有关,Oracle 在进行数据块高速缓存管理时,索引数据比普通数据具有更高的驻留权限,在进行空间竞争时,Oracle 会先移出普通数据,对建有索引的大型表进行数据查询时,索引数据可能会用完所有的数据块缓存空间,Oracle 不得不频繁地进行磁盘读写来获取数据,所以,在对一个大型表进行分区之后,可以根据相应的分区建立分区索引。
Oracle 提供了另一种方法来提高查询速度,就是聚簇(Cluster)。所谓聚簇,简单地说就是把几个表放在一起,按一定公共属性混合存放。聚簇根据共同码值将多个表的数据存储在同一个Oracle 块中,这时检索一组Oracle 块就同时得到两个表的数据,这样就可以减少需要存储的Oracle块,从而提高应用程序的性能。
对于逻辑结构的优化,还应将表数据和索引数据分开表空间存储,分别使用独立的表空间。因为如果将表数据和索引数据放在一起,表数据的I/O 操作和索引的I/O 操作将产生影响系统性能的I/O 竞争,降低系统的响应效率。将表数据和索引数据存放在不同的表空间中,并在物理
您可能关注的文档
- NOOBRbJAK2STAT3SOCS3自分泌调节通路在瘦素抵抗中作用及其机制.doc
- NOSQL在WEB日志分析中应用.doc
- NoSQL非关系型数据库发展和应用研究.doc
- Notch1Notch2 Notch3跨膜受体蛋白在淋巴瘤组织中表达及意义.doc
- notch―1p16在宫颈癌中表达及临床意义.doc
- Notch信号通路在结直肠肿瘤干细胞中作用.doc
- Notch信号通路在组织血管化中作用.doc
- Notes数据库与关系型数据库之间整合在办公自动化系统中应用.doc
- Nova4130MN型氢氧分析仪在钢带炉系统中应用.doc
- NovaChip超薄磨耗层在连霍高速洛三灵段专项养护上应用研究.doc
文档评论(0)