plsql查看执行计划.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
plsql查看执行计划   如何获取当前正在跑程序的执行计划   1获取当前程序执行SQL的SQL_ID,这有两种途径:   a.   SELECT_IDFROMGV$SESSIONTWHEREBACKGROUND   AND=ACTIVEANDLIKE%MCA_APD_CHECK_PUBLIC_PKG%;   b.   根据日志记录,定位到程序目前执行到哪一步,再提取这一步的SQL,根据SQL文本获取:SELECT*FROMGV$SQLTWHERE_TEXTLIKE%INSERTINTO   OWR_AP_BALANCE_F%;   根据SQL_ID,在PLSQLDEVELOPER中执行下面的脚本,获得CLOB格式的执行计划,建议打开后粘贴到文本编辑器查看;   SELECTDBMS__SQL_MONITOR(SQL_ID=3mf9uj08kxj30)FROMDUAL;   中所有的V$打头的视图都是动态视图,在运行时随时变化的,因此一个存储过程程序执行一段时间,SQL_ID可能在不断变化;   2.每个V$视图都有对应的GV$视图,多节点的环境下需要使用GV$,如果查看V$视图只能获取当前连接节点   的信息。   3.调用了DBMS__SQL_MONITOR获取的执行计划报告,最大的特点是包含了SQL当前执行状态的信息,即计划估算值和实际执行状态有个明显对比;   SQLMONITOR生成执行计划报告的阅读要点:   1.从头到尾,依次是SQL文本信息,SQL总体执行信息,并行相关信息,执行计划;   2.执行计划中,ROW(Estim)列是计划估算值,rows(Actual)是实际执行值,两者差异太大就说明执行计划有严重偏差,可能需要优化;   3.执行计划的ActivityDetail(#samples),详细说明了每个步骤操作具体消耗,因为都是通过系统等待事件表示的,所以需要对等待事件有一定基础。   通过F5查看到的执行计划,其实是pl/sqldeveloper工具内部执行查询plan_table表然后格式化的结果。   select*fromplan_tablewherestatement_id=...。其中   Description列描述当前的数据库操作,   Objectowner列表示对象所属用户,   Objectname表示操作的对象,   Cost列表示当前操作的代价,这个列基本上就是评价SQL语句的优劣,Cardinality列表示操作影响的行数,   Bytes列表示字节数   之前作为一个OracleEmployee,却总是在使用PL/SQLDeveloper,这实在有些说不过去,但是如何找到一个合心趁手的能够在有条件的情况下比SQL*PLUS更方便的工具却实在不是一件简单的事情,以前期待tora被Quest收购以后会有长足发展,可惜,并没有看到最终的结果。   之前曾经说过,PL/SQLDeveloper对于我最难以割舍的是completioninsight功能,当你记不住表、性能视图或者存储过程、函数的全名,PL/SQLDeveloper将会在你输入了几个字母之后自动提示。TOAD发展了那么多年,却一直没有提供相类似的功能。   但是现在完全免费的替代产品出现了,这就是OracleSQLDeveloper,Oracle官方出品的开发工具,当然这个工具并不是今年才推出的,现在最新版本已经是   ,但是,最早的版本并不是那么好用,而现在,我可以郑重地推荐它了。   请注意,这个工具是完全免费的,可以通过这个链接下载。   以一个普通使用者的身份比较一下OracleSQLDeveloper和PL/SQLDeveloper。   1.格式化的结果输出。   这一点任何一个第三方工具都做得不错,是一个基本功能。   2.自动提示。   也就是上面提到的CompletionInsight功能,可以说,OracleSQLDeveloper拥有的功能以及速度绝对不亚于PL/SQLDeveloper,甚至有更人性化的表现。比如当你键入select*from,空格之后,OracleSQLDeveloper会立刻给出一个当前用户下的所有Table的列表,如果继续键入比如DBA三个字母,那么列表将转换为DBA打头的所有数据字典。而如果你从一行的开头键入exec四个字母,那么当回车以后,OracleSQLDeveloper会立刻给出一份所有可以执行的存储过程的列表。   最新版本中对于V$视图的提示有bug,相信很快就可以修改。   3.代码美化功能。   所有使用过PL/SQLDeveloper的朋友们应该都知道在最近这几版中都有一个PL/SQLBeautifier的功能,可以将一大串SQL语句格式化更容易

文档评论(0)

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

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

1亿VIP精品文档

相关文档