【精品】OracleSQL优化调整基础.doc

【精品】OracleSQL优化调整基础.doc

ID:51890910

大小:145.50 KB

页数:9页

时间:2020-03-18

【精品】OracleSQL优化调整基础.doc_第1页
【精品】OracleSQL优化调整基础.doc_第2页
【精品】OracleSQL优化调整基础.doc_第3页
【精品】OracleSQL优化调整基础.doc_第4页
【精品】OracleSQL优化调整基础.doc_第5页
资源描述:

《【精品】OracleSQL优化调整基础.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、内部项目OracleSQL优化调整基础主题:OracleSQL优化调整基础项H名称:内部项H撰写单位:海鼎作者:吴昭松版本号:0.1H期:2006-07-16审核功能姓名部门签名日期文档历史版本修改原因修改人基于版本日期0.1创建文档吴昭松2006-07-16参考文档编号文档名(链接)1.、八・■刖B我们经常听到客户的抱怨:“某某査询太慢了,执行了半个多小时了还没执行完成。”,“查询还在执行?我都喝完一杯茶了。”我们的冋答有时候是:“数据量太大了,是需要比较长的时间的。”或者“服务器配置太低了,没有办法。”而事实上,有时候服务器的

2、资源却还有空闲。在没有做好充分的评估之前,我们不应该试图说服客户增加服务器配置,因为这样必定会增加客户成木,并不是所育的客户都愿意这样做的。于是,如何利用现有的资源,充分发挥数据库性能的问题摆在了我们血前。Oracle的性能调整涉及很多方血,方法也非常多,我们现在把关注点放在SQL优化调整上。OracleSQL优化调整是Oracleft能调整屮一项菲常耗时的任务,提高低效率SQL的件能,需要不断地尝试,是一个不断反复的过程。木文忽略服务器、网络、磁盘、实例和数据结构设计方面的调整,着垂讲述SQL的优化调整基础。先看一个简单的SQL

3、调整的例子:查询某商场2005年5月^OOr大类,销售额排名前十位商品,SQL优化器选择为RULE:selectscode,snaine,code,name,amountfrom(select/*+RULE*/c.scode,c.sname,b・code,b・name,sum(decode(a・cis,'零售',a.aint+a.tax,'零售退',一&・dint-d.tax))amountfromdrpta,goodsb,sortnamecwherea・gdgid二b・gidanda.cisin('零售',’零售退')anda.

4、fiIdatebetween12005.05.0Tand*2005.05.3Tandb.sortlike'2001%'andsubstr(b・sort,1,4)二c・scodeandc.acode='0000,groupbyc.scode,c.sname,b・code,b・nameorderbysum(decode(a.cis,'裟售',a.amt+a.tax,'零售退',-a・amt-a・tax))desc)ewhererownum<=10;运行上面语句运行时间59.797秒,感觉应该有可调整空间。先看看它的执行计划:Descr

5、iption

6、ObjectowneriObjectname

7、CostCardinality

8、Bytesb^electTtatemenlgoal=hintTrule日COUNTSTOPKEY白VIEWHD40白SORTORDERBYSTOPKEY□SORTGROUPBYBNESTEDLOOPS日NESTEDLOOPSsTABLEACCESSBYINDEXROWIDHD40SORTNAMEINDEXRANGESCANHD40SYS.C0011468BTABLEACCESSBYINDEXROWIDHD40DRPTliiflllNDEXR

9、ANGESCANHD40IDXDRPTFILDATEI-}TABLEACCESSBYINDEXROWIDHD40GOODSINDEXUNIQUESCANHD40SYS.C004850我们发现DRPT是一张大表,使用的索引是IDXDRPTFILDATE(FILDATE,CLS,GDGID)□根据筛选顺序和数据分布,觉得另一个索引1DX_DRPT_GDG1D(GDGID,FILDATE,CLS)可能更适合这个查询。于是在保持RULE优化器的基础上,尝试做如下调整:selectscode,snaine,code,name,amountf

10、rom(select/*+index(a,IDX_DRPT_GDGID)*/c.scode,c.sname,b.code,b.name,sum(decode(tucis,'零售',d・aint+a・tax,'零售退',-d・amt-d・tax))amountfromdrpta,goodsb,sortntunecwherea.gdgid二b.gidanda.cisin('零售','零售退')anda.fiklatebetween12005.05.0Tand'2005.05.31’andb.sortlike'2001%'andsubs

11、tr(b・sort,1,4)二c.scodeandc.acode二’0000,groupbyc.scode,c.snaine,b・code,b.nameorderbysum(decode(a.cis/零售',a.amt+a.tax,'零售退',-a

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

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

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