

全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库应用系统性能优化研究 邢小平(通信指挥学院仿真中心湖北武汉430010)摘要:oracle数据库作为目前适用性最好的关系数据库引擎之一,能够支持各种业务形式、处理各种复杂事务,得到极为广泛的应用。但由于应用系统的规模日趋庞大、系统架构日益复杂、业务复杂程度不断提高、业务数据积累急剧膨胀,再加上应用软件本身没有确定的标准、产品化程度低,从而导致应用系统的性能问题层出不穷,维护难度越来越大。本文主要从数据库服务器内存参数调整,sql语句优化两方面论述如何在系统设计,运行过程中对oracle数据库进行性能优化。数据库服务器内存参数调整主要论述共享池的大小设置问题,sql语句优化主要从oracle解析sql语句的机制方面来论述如何写出高效的sql语句。通过上述方面的调优以确保数据库系统的性能。 关键词:数据库性能优化逆规范化设计优化策略 据统计数据库应用系统的性能问题50的情况下都是由于设计问题引起的。软件设计师在设计软件和数据库结构时,未必能完全知道将来用户使用系统处理业务的各种复杂情况。这就造成在软件系统运行初始阶段只能发现个别的性能问题,而其他的性能问题只能等到系统运行一段时间后才能暴露出来。针对这些问题,我们提出数据库应用系统性能设计优化策略,以提高数据应用子系统的性能。 1、对数据库服务器内存分配的调整由于对服务器内存参数的调整对oracle的性能影响显著,它成为oracle数据库性能调优的首选对象。服务器内存参数的调整主要是对数据库系统全局区的调整,系统全局区包括共享池、数据缓冲区、日志缓冲区。其中最主要的是对数据缓冲区和共享池的参数调整。 数据库缓冲区的作用主要是将从磁盘中读取的数据块存放在内存缓存中,从这个意义上说数据库缓冲区越大,存放的共享数据就越多,减少了对磁盘数据的物理读操作,也就提高了系统的响应速度。 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语句中应当直接列出所有的列名。 3、软件开发模式优化策略 3.1避免访问回滚段如果查询数据库时,要访问的数据正被另外用户修改,数据库为了维护读一致性,需要访问会滚段来读取查询语句执行时刻的数据值。如果应用程序需要经常读取正在被其它用户修改的数据,数据库系统为了得到一个数据,不得不多次访问磁盘。数据库管理员可通过配置回滚段来减少查询时“snapshot tooold”错误的发生。 解决这个问题的根本方法还是需要重新修改应用程序设计,合理对事务进行划分。 3.2表的分区和并行技术 如果必须要在数据库运行特别耗时的操作。应尽量地把这样的操作分解,严格限制操作所涉及的记录数,并设法使操作并行,充分地提高执行效率。 (1)使用分区。分区技术有两个潜在的好处:提高查询性能和提高数据库可用性。数据库查询时,优化器知道那些分区包含查询所要的数据。而其它分区数据将不会被读取,从而查询任务将更快完成。许多管理工作可在只一个分区上进行,而不影响其它分区的数据。例如可以选择只删除一个表分区中的数据。可对表分区进行再分割,把一个表分区迁移到不同的表空间上。可只对一个表分区进行分析统计。表分区的这些特性。 (2)使用并行。oracle数据库中几乎所有的操作都支持并行特性,包括查询、插入、和数据加载。并行选项可以使多个处理器同时处理一条命令,在创建库数据库对象时可以设定并行参数,也可在查询语句中重新设。 4、软件测试优化策略 许多情况下由于开发进度等原因,软件性能压力测试都进行的不充分。这就导致软件产品交付时,不能确保软件性能满足用户需求。这点常常被开发人员忽视。用户不仅需要软件能完成一定功能,更需要软件能支撑自己业务的运行。因此应用软件性能不能满足业务处理的速度要求,软件系统就需要优化。测试必须验证软件性能能否在希望负载情况下,满足业务处理的速度要求。 (1)用大量的数据进行测试。系统使用一段时间后,数据库的性能会发生变化。例如oracle数据库一个表的pctfree和pctused参数设置可能会使数据块只有一半的空间被利用或使数据库记录链接(chained)。上面的情形都会引起数据库性能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 草原割草过程中的生态环境保护考核试卷
- 陶瓷洁具产品生命周期管理考核试卷
- 阑尾炎术后感染临床管理要点
- 幼儿进餐环节卫生保健规范
- 月如意深呼吸
- 疫情期间普外科诊疗管理策略
- Influenza-virus-IN-9-生命科学试剂-MCE
- 超神数学-高考数学总复习基础篇(一轮)(练习册)专题03不等式(含答案或解析)
- 内部资料性出版物管理办法
- 海丰县鹭影禾香乡村振兴示范带建设项目可行性研究报告
- 2025年高考全国二卷数学高考真题解析 含参考答案
- 【MOOC】生理学-中南大学 中国大学慕课MOOC答案
- 各类安全事故案例图片合集
- 婚姻家庭咨询师考试复习提纲
- 急性有机磷中毒临床治疗指南
- 实验室CNAS评审常见问题精编要点
- 动火安全作业票填写模板2022年更新
- 2011年7月20日深圳中心商业物业应急守则和突发事件的管理
- WNS锅炉产品制造工艺检验流程卡
- 天津市成人高等教育毕业生登记表
- 通信管道施工三级-安全技术交底记录表
评论
0/150
提交评论