网站大量收购独家精品文档,联系QQ:2885784924

一种数据库调优方法的分析及应用.docVIP

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

一种数据库调优方法的分析及应用 摘要:本文对数据库各种调优方法进行了总结,将数据库调优方法分成了5个级别,并简要阐述了每个级别调优所包含的各种方法。然后结合一个实际案例,详细说明了根据数据库实际特点对程序业务逻辑进行优化设计,可以明显提高程序性能。以此提出了优化程序业务逻辑设计是实现数据库调优的最有效方法。 关键词: 数据库 SQL优化 业务逻辑优化 0 引言 现在大部分计算机系统都涉及到对信息数据的存储与处理。存储数据离不开数据库,因此对数据库的优化是应用系统高效稳定运行的基础。实际中,由于系统配置、程序设计、系统负荷变化等原因使得数据库很难在设计之初就到达最优的运行效果。这就需要在系统运行过程中不断发现问题,根据实际情况对数据库进行调优,以到达系统稳定运行的目的。可见,数据库调优对系统开发人员来说是一项分外重要的工作。 数据库调优并不是一件简单的工作,可能涉及系统的方方面面。对数据库调优很难找到固定的模式和方法进行参照。一般需要根据具体的实际情况具体分析,根据不同的原因,综合考虑数据库的内在实现机制,采取恰当的措施进行优化,才能产生令人满意的效果。 1 数据库调优方法的级别分类 数据库调优是一项知识密集型的工作【1】,需要综合考虑各个方面因素对数据库性能的影响,然后采取相应的措施进行调整。按照优化对象的由低到高的层次不同可以将数据库调优方法分为五个级别: (1)第一个级别是主机系统的优化。 这个级别的调优主要是通过对硬件的升级改造,操作系统的参数配置等手段使系统整体性能得到改进,从而使运行在其中的系统的性能也得到改进。这个级别的优化可以说是外部性能的调整,比如CPU的处理速度,使用内存的大小,网络传输性能,磁盘阵列的物理设计等指标都会对系统性能有重要的影响。 (2)第二个级别是数据库RDBMS级别的优化【2】。 这种优化是通过修改数据库的一些配置参数等手段来实现的【3】。比如在Oracle数据库中可以对以下几个方面的参数进行调整,包括修改系统全局区,数据缓存区,共享内存区,程序全局区,排序区,连接数量等方法。 (3)第三个级别是数据库逻辑结构及数据模型级的优化【2】。 这类优化主要集中在对数据库逻辑结构和数据建模方面,在设计阶段就需要重点考虑这类问题。包括为提高磁盘I/O速度【4】将不同的文件放到不同的I/O通道通过分区存储提高大数据表的读写效率、合理的设计索引、数据和索引的表空间分开、合理设计表结构和表间关联关系等方法。 (4)第四个级别是SQL级的优化。 一般情况下,程序中不良的SQL语句可能导致整个数据库系统高负荷运转,甚至对外暂停服务【3】,所以需要根据不同数据库对SQL的编译和执行特点,对SQL语句进行优化。比如在Oracle数据库的SQL设计中,需要尽量采用静态SQL以提高执行速度,尽量书写格式相同的SQL以减少系统解析次数、尽量不用“”或者“!=”操作符 for rec_tmp2 in (select pic.result_id from pnr_inc_chk_rslt pic where exists (select ici.pnr_ref from iaa_change_info ici where ici.pnr_ref = pic.pnr_ref or ici.pnr_ref = pic.pnr_ref_o) and not exists (select isp.pnr_ref, isp.pnr_ref_o from iaa_sim_pnr_info isp where (isp.pnr_ref = pic.pnr_ref and isp.pnr_ref_o = pic.pnr_ref_o) or (isp.pnr_ref = pic.pnr_ref_o and isp.pnr_ref_o = pic.pnr_ref))) loop delete from pnr_inc_chk_rslt where result_id = rec_tmp2.result_id and opt_ind = 0; end loop; ...... 程序按照业务逻辑将改变的pnr分成两部分,通过两个loop循环(上面仅显示一个)实现了所需的功能。事实证明这

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档