oraclesql性能优化之探究

oraclesql性能优化之探究

ID:8981469

大小:38.50 KB

页数:8页

时间:2018-04-13

oraclesql性能优化之探究_第1页
oraclesql性能优化之探究_第2页
oraclesql性能优化之探究_第3页
oraclesql性能优化之探究_第4页
oraclesql性能优化之探究_第5页
资源描述:

《oraclesql性能优化之探究》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、OracleSQL性能优化之探究摘要在数据库应用中,根据用户提交的查询请求,如何才能精炼又高效地得到查询结果?从多个角度描述怎样优化sql语句。实验结果表明,sql优化能够减轻系统资源的占用,满足用户的要求。关键词sql优化;rbo;cbo;sga;高效sqlresearchonoraclesqlperformanceoptimization//wangguanxiang1,zhanghuanyuan1,xiayadong1,liujin1,wanghuabing2abstractinthedatabaseapplicati

2、on,howtorefiningandefficientlygetthequeryresultaccordingtouser’squeryrequest?thisarticledescribeshowtooptimizethesqlstatementwithmanyaspects.theexperimentalresultsshowthat,sqloptimizationthatcanreducetheoccupierofsystemresources,tomeettherequirementsofthecustomers.

3、keywordssqloptimization;rbo;cbo;sga;efficientsqlauthor’saddress1departmentofnetworkandeducationtechnology,sdau,taian,shandong,china2710182nanjingr&dcenter,ztesoft,nanjing,china210012在计算机应用中离不开数据库应用,数据库应用首当其冲就是sql优化,最常用的企业数据库是oracle;精炼又高效率的sql语句对一个大型网站或大型数据库来讲是很有用的,

4、sql的冗余造成系统与资源的占用和时间的增加。什么样的sql才算是高效的sql呢?如何用最少的资源、最少的时间完成同样的事情呢?本文首先介绍oracle的体系架构,然后分析sql的执行流程,接着从oracle优化器如何查看执行计划,如何使用索引,最后结合实例,从各个角度来描述怎样优化sql。1oracle的sga和性能的关系1.1oracle的sga介绍oracle的sga(数据库的系统全局区)主要由3部分构成:共享池、数据缓冲区、日志缓冲区。1)共享池。共享池又由两部分构成:共享sql区和数据字典缓冲区(datadictc

5、ache)。共享sql区专门存放用户sql命令,oracle使用最近最少使用等优先级算法来更新覆盖;数据字典缓冲区(librarycache)存放数据库运行的动态信息。数据库运行一段时间后,dba需要查看这些内存区域的命中率,以从数据库角度对数据库性能调优。通过执行下述语句查看。①“select(sum(pins-reloads))/sum(pins)“libcache”fromv$librarycache;”,查看共享sql区的重用率,最好在90%以上,否则需要增加共享池的大小。②“select(sum(gets-getm

6、isses-usage-fixed))/sum(gets)“rowcache”fromv$rowcache;”,查看数据字典缓冲区的命中率,最好在90%以上,否则需要增加共享池的大小。2)数据缓冲区。数据缓冲区存放sql运行结果抓取到的datablock;“selectname,valuefromv$sysstatwherenamein(‘dbblockgets’,‘consistentgets’,’physicalreads’);”,查看数据库数据缓冲区的使用情况。查询出来的结果可以计算出来数据缓冲区的使用命中率=1-(p

7、hysicalreads/(dbblockgets+consistentgets))。命中率应该在90%以上,否则需要增加数据缓冲区的大小。3)日志缓冲区存放数据库运行生成的日志。“selectname,valuefromv$sysstatwherenamein(‘redoentries’,’redologspacerequests’);”,查看日志缓冲区的使用情况。查询出的结果可以计算出日志缓冲区的申请失败率:申请失败率=requests/entries。申请失败率应该接近于0,否则说明日志缓冲区开设太小,需要增加orac

8、le数据库的日志缓冲区。1.2结论:提高sharepool中sql共享率sharepool中sql共享率对性能影响很大,如何提高呢?1)sql文本完全相同:upercaseandlowercase,whitespace(spaces,tabs,carriagereturns),commen

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。