Oracle数据库应用系统性能优化问题探析.docVIP

Oracle数据库应用系统性能优化问题探析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle数据库应用系统性能优化问题探析

Oracle数据库应用系统性能优化问题探析摘要:Oracle数据库作为目前适用性最好的关系数据库引擎之一,能够支持各种业务形式、处理各种复杂事务,得到极为广泛的应用。但由于应用系统的规模日趋庞大、系统架构日益复杂、业务复杂程度不断提高、业务数据积累急剧膨胀,再加上应用软件本身没有确定的标准、产品化程度低,从而导致应用系统的性能问题层出不穷,维护难度越来越大。本文主要从数据库服务器内存参数调整,SQL语句优化两方面论述如何在系统设计,运行过程中对Oracle数据库进行性能优化。数据库服务器内存参数调整主要论述共享池的大小设置问题,SQL语句优化主要从Oracle解析SQL语句的机制方面来论述如何写出高效的SQL语句。通过上述方面的调优以确保数据库系统的性能。 关键词:数据库性能优化 逆规范化设计 优化策略 中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2012)06-0215-02 据统计数据库应用系统的性能问题50%的情况下都是由于设计问题引起的。软件设计师在设计软件和数据库结构时,未必能完全知道将来用户使用系统处理业务的各种复杂情况。这就造成在软件系统运行初始阶段只能发现个别的性能问题,而其他的性能问题只能等到系统运行一段时间后才能暴露出来。针对这些问题,我们提出数据库应用系统性能设计优化策略,以提高数据应用子系统的性能。 1、对数据库服务器内存分配的调整 由于对服务器内存参数的调整对oracle的性能影响显著,它成为Oracle数据库性能调优的首选对象。服务器内存参数的调整主要是对数据库系统全局区的调整,系统全局区包括共享池、数据缓冲区、日志缓冲区。其中最主要的是对数据缓冲区和共享池的参数调整。 数据库缓冲区的作用主要是将从磁盘中读取的数据块存放在内存缓存中,从这个意义上说数据库缓冲区越大,存放的共享数据就越多,减少了对磁盘数据的物理读操作,也就提高了系统的响应速度。 共享池的作用主要是用来存放最近使用过的sql语句的,它由一个最近最少使用的算法来管理,由库高速缓存和数据字典缓冲区两部分组成。修改这一参数的设置,能提高系统性能,是由Oracle数据库系统处理用户提交的SQL语句的步骤决定的。Oracle处理SQL语句,PL/SQL程序之前会先对其进行语法分析,权限确认,在确认语法正确,权限合理的之后,会对SQL进行优化,最终生成执行计划。这个过程花费了大量的时间,如果在执行这些语句的时候可以将这些内容保存下来,在下次执行相同的SQL语句或者PL/SQL,就可以跳过这个步骤,进而提高系统的响应速度。如果这一区域比较大,在内存中找到相同数据的概率越大,可以减少对SQL语句的重复解析的时间,能明显的改进数据库的性能。但是共享池也并非越大越好,如果共享池太大,Oracle为了维护这一共享结构,需要付出更大的管理开销,反而对数据库系统的性能维护不利。一般来说,系统内存为1G,共享池可设为150M ̄200M,内存增压1G,该值增加100M,但共享池的最大值不应当超过500M。综上所述,系统全局区的参数设置应当随着系统的运行进行适当的调整,使之在合理的范围内尽量大,但是不能超过一个限度,如果这一区域过大,反而会占用操作系统使用的内存,引起虚拟内存的页面交换,降低了系统效率。 2、Sql优化 由于应用程序的执行最终归结为后台数据库中SQL语句的执行,SQL语句本身的执行效率就成为了影响oracle数据库执行效率的一个重要因素,当我们对Oracle处理SQL语句的机制有所了解,通过对SQL语句进行适当的调整,就能提高Oracle数据库系统的性能。 (1)在基于规则的优化器中,Oracle对from子句中的表名是按照从右到左的顺序进行解析的,即:From子句中排在最后的表会被首先处理。我们把这张表称做驱动表。当from字句中包含多个标的情况下,oracle是通过排序合并的方式连接这些表的,为了提高oracle的执行效率,应当选择包含记录条数少的表作为驱动表,即放在from子句的最后。当from子句中有3张以上的表进行连接查询时,需要将连接其他表的交叉表作为驱动表。 (2)在oracle语句中,where子句的执行顺序是自下而上的对语句进行解析的。为了提高sql语句的执行效率,应该将能过滤掉大量数据的条件写在where子句的最后。 (3)在selcect语句中使用*虽然对编程人员简单方便,oracle会自动列出所有列名,但oracle解析*时则是通过查询数据字典来完成对*的转换的,这样耗费了更多的时间用来查询数据字典,转换,必然降低执行效率,因此在selcect语句中应当直接列出所有的列名。 (4)用where子句代替having子句,在where子句中排除不需要的记录

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档