基于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语句优化、内存分配的调整和磁盘I/O的优化。通过统一的规划、分析做出相应的调整,保障系统高效地运行,节约系统和内存的开销、解决系统瓶颈问题,从而提高数据库的实用性、稳定性和持久性。   关键词:Oracle;性能;SQL语句优化;内存调整;磁盘I/O   1 概述   在大型的数据库应用系统中,随着数据处理量的剧增和数据处理复杂程度的增加,用户对作为系统核心的数据库的安全和性能的要求越来越高。在尽量不增加硬件成本的情况下提升现有的数据库应用系统的性能,是所有大型数据库系统开发和维护的一个重要的目标。   2 Oracle数据库性能优化与调整技术   Oracle作为全球第一大数据库产品,其优越性不仅在于其强大的安全性,功能的稳定性,同时它还是高度可优化的软件工具[1]。可以经常性的调整和优化其性能,以防止出现系统瓶颈。   数据库性能优化与调整所涉及的内容比较复杂,涉及数据库运行的很多方面,文章基于某大学图书管理系统进行研究,主要是从数据库角度进行优化与调整。主要包含:查询优化、内存调整和磁盘I/O分配这三方面。也是最常用的、影响最大的几个方面。只有将其充分利用得当,才能更加突出性能优化的效率。   2.1 Oracle数据库查询优化   2.1.1 语句优化器   根据优化器获得语句执行计划和统计信息,了解查询结果反应迟钝的现象,从而找出不足之处,加以修改,就能够极大的提高语句查询的速度。快速得到想要的结果。   Autotrace优化器的使用:Autotrace优化器能够显示SQL的查询结果,能够自动显示统计信息和执行计划[2]。利用Autotrace工具产生的结果,我们就可以将它作为优化的依据。   2.1.2 SQL语句的优化   在写SQL语句时,大多数人只关注着语句查询出来的结果是否是自己想要的。至于等待时间则显得尤为不重要。但是一旦我们数据库中的数据量过大,查询语句条件过多或者有过多的查询条件、索引的不适当的建立都会造成用户等待时间过长。那么如果将它们进行合理的优化后,查询的速度会更为明显。   (1)使用不当的SQL语句   避免在索引列上使用函数或计算,在where子句中,如果索引是函数的一部分,优化器会使用全表扫描而不是继续使用索引;要避免在索引列上使用“!=”和“not”,因为索引只能告诉哪些数据存在于表中,而不会去告诉哪些数据不存在于表中。当数据库遇到“not”或是“!=”时,它就会停止使用索引,去执行全表扫描。   (2)参数设置   将初始化参数OPTIMIZER_INDEX_COST_ADJ的非默认值25变为默认值100。这个参数影响CBO决定使用一个有效的索引而不是全表扫描。   (3)使用工具获得执行计划   也就是前面所讲的,根据使用AUTOTRACE可以查看出具体的查询执行情况,从而可以分析得出效率低的原因。使用该工具后,确保了在提交的这些语句中会给出最佳的SQL语句。   优化的工具还有EXPLANE,SQLTRACE等,都是能够提高SQL语句的性能[3]。   2.2 优化数据库内存分配   如果一个数据库本身的内存很小,即便window系统是4G或6G内存或者跟更大,数据库若想保存一张数据量很大的表时,也要花费很长时间。操作系统的内存再大也发挥不出来其作用。那么,为了解决软件运行的速度问题,使内存充分利用起来,调整数据库的内存就显得尤为重要。   Oracle数据库的内存可划分为系统全局区(SGA)和进程全局区(PGA)。SGA是一组共享的内存结构,它与操作系统、CPU、内存有关,在系统物理内存的一半左右。它里面主要是存储数据库实例的数据和控制文件信息,是数据库实例的基本组成部分。所以,如果想提高数据库的性能问题,那么就要对SGA的参数进行调整,使其达到最优。   通过调整参数值,可以在查询时提高资源利用效率,从而减少用户等待时间。常用的几个参数如下:   Log_buffer:日志缓冲区的大小设置,作为一个正式系统,可能考虑先设置这部分为log_buffer最好在1-3M之间,即使范围很大,也不能全部用到,之后可针对具体情况再进一步调整。重做日志缓冲区保存着数据库的重做条目(redo entry)或修改日志。日志缓冲区的内容总是会尽快写入重做日志中。   Large_pool_size:大缓冲池的设置,一般情况下在20-30M就可以了。大缓冲池的作用就是保存并行查询时的信息。   shared_pool_size:共享池是指SGA中存储共享内存结构的区域,共享池又包括库缓存池

文档评论(0)

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

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

1亿VIP精品文档

相关文档