用explainplan分析sql语句

用explainplan分析sql语句

ID:32170279

大小:42.50 KB

页数:8页

时间:2019-02-01

用explainplan分析sql语句_第1页
用explainplan分析sql语句_第2页
用explainplan分析sql语句_第3页
用explainplan分析sql语句_第4页
用explainplan分析sql语句_第5页
资源描述:

《用explainplan分析sql语句》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用EXPLAINPLAN分析SQL语句如何生成explainplan?  解答:运行utlxplan.sql.建立plan表  针对特定SQL语句,使用explainplansetstatement_id='tst1'intoplan_table  运行utlxplp.sql或utlxpls.sql察看explainplanEXPLAINPLAN是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句.通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称.你需要按照从里到外,从上到下的次序解读分析的

2、结果.EXPLAINPLAN分析的结果是用缩进的格式排列的,最内部的操作将被最先解读,如果两个操作处于同一层中,带有最小操作号的将被首先执行.NESTEDLOOP是少数不按照上述规则处理的操作,正确的执行路径是检查对NESTEDLOOP提供数据的操作,其中操作号最小的将被最先处理.译者按:通过实践,感到还是用SQLPLUS中的SETTRACE功能比较方便.举例:SQL>list1SELECT*2FROMdept,emp3*WHEREemp.deptno=dept.deptnoSQL>setautotracetraceonly/*traceonly可以不显示执行结果*/SQL>

3、/14rowsselected.ExecutionPlan----------------------------------------------------------0SELECTSTATEMENTOptimizer=CHOOSE10NESTEDLOOPS21TABLEACCESS(FULL)OF'EMP'31TABLEACCESS(BYINDEXROWID)OF'DEPT'43INDEX(UNIQUESCAN)OF'PK_DEPT'(UNIQUE)Statistics--------------------------------------------------

4、--------0recursivecalls2dbblockgets30consistentgets0physicalreads0redosize2598bytessentviaSQL*Nettoclient503bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient0sorts(memory)0sorts(disk)14rowsprocessed通过以上分析,可以得出实际的执行步骤是:1.TABLEACCESS(FULL)OF'EMP'2.INDEX(UNIQUESCAN)OF'PK_DEPT'(U

5、NIQUE)3.TABLEACCESS(BYINDEXROWID)OF'DEPT'4.NESTEDLOOPS(JOINING1AND3) 注:目前许多第三方的工具如TOAD和ORACLE本身提供的工具如OMS的SQLAnalyze都提供了极其方便的EXPLAINPLAN工具.也许喜欢图形化界面的朋友们可以选用它们.----------------------------------------------------------------------------对于sql执行的小量高低.我们可以通过执行计划的信息基本上可以进行分析查看该SQL语句执行的时间.连接顺序及浪费的

6、数据库资源等信息,从而判断该SQL语句执行的效率如何,下面就简单的介绍一下执行计划的使用2.       Explain使用OracleRDBMS执行每一条SQL语句,都必须经过Oracle优化器的评估。所以,了解优化器是如何选择(搜索)路径以及索引是如何被使用的,对优化SQL语句有很大的帮助。Explain可以用来迅速方便地查出对于给定SQL语句中的查询数据是如何得到的即搜索路径(我们通常称为AccessPath)。从而使我们选择最优的查询方式达到最大的优化效果。2.1.       安装要使用执行计划首先需要执行相应的脚本。使用Explain工具需要创建Explain_p

7、lan表,这必须先进入相关应用表、视图和索引的所有者的帐户内。Oracle的介质中包含有执行此项工作的SQL源程序,例如:ORA_RDBMS:XPLAINPL.SQL(VMS)$ORACLE_HOME/rdbms/admin/utlxplan.sql(UNIX)该脚本后会生成一个表这个程序会创建一个名为plan_table的表,表结构如下:我们简单的介绍一下主要的字段含义:字段名       字段类型       含义STATEMENT_ID       VARCHAR2(30)       expla

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

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

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