Welcome 微信登录

首页 / 数据库 / MySQL / Oracle如何查看sql的真实执行计划

知识普及:1 平常我们用explan plan for,set autotrace,utlxplan等方式查看执行计划都是optimizer模拟生成的执行计划,并不完全符合Oracle内部对sql语句的执行路径。2 v$sqlarea中放置的父游标,放置sql的sql_id和address3 v$sql中对应v$sqlarea中的sql的子游标,address和child_number代表唯一的子游标查询sql在数据库中实际的sql执行计划方法:1 set autotrace on如果语句返回的行很多,那么结果会非常庞大,在sqlplus里边是一个困难的选择。set autotrace traceonly  --并不能每次显示正确的执行计划,造成对sql优化的误导。2 查询v$sql_plan是真实执行路径,但阅读比较困难。3 使用如下语句可以查询sql的真实执行路径,并且格式化执行路径输出set linesize 400set pagesize 60SELECT * FROM TABLE (SELECT DBMS_XPLAN.DISPLAY_CURSOR("a8tumy29tf0za","0") from dual);--第一个为sql_id--第二个为child_number更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=1215个 MySQL 基础面试题,DBA 们准备好了吗?Oracle 索引index那些事相关资讯      Oracle SQL 
  • Oracle高级SQL培训与讲解 PDF  (06月01日)
  • SQL在Oracle内部的具体处理流程  (05/06/2015 10:43:43)
  • Oracle使用WITH AS和HINT   (07/18/2014 15:55:31)
  • Oracle SQL语句追踪  (05/09/2015 09:42:25)
  • Oracle执行SQL查询语句的步骤  (09/26/2014 19:40:59)
  • 获取Oracle SQL语句中绑定变量值的  (07/17/2014 08:07:40)
本文评论 查看全部评论 (0)
表情: 姓名: 字数