资讯专栏INFORMATION COLUMN

oracle查看执行计划的方法

susheng / 3517人阅读

摘要:数据来源是仓库基表数据来源是视图以上内容主要整理自的执行计划教学视频和

查看执行计划的方法

Explain Plan For SQL
不实际执行SQL语句,生成的计划未必是真实执行的计划
必须要有plan_table

SQLPLUS AUTOTRACE
除set autotrace traceonly explain外均实际执行SQL,但仍未必是真实计划
必须要有plan_table

SQL TRACE
需要启用10046戒者SQL_TRACE
一般用tkprof看的更清楚些,当然10046里本身也有执行计划信息

V$SQL和V$SQL_PLAN
可以查询到多个子游标的计划信息了,但是看起来比较费劲

Enterprise Manager
可以图形化显示执行计划,但并非所有环境有EM可用

其他第三方工具
注意 PL/SQL developer之类工具F5看到的执行计划未必是真实的

推荐的方法 DBMS_XPLAN

select * from table(dbms_xplan….);

dbms_xplan.display()

数据来源是Plan Table

dbms_xplan.display_cursor

数据来源是Shared pool中的游标缓存

FUNCTION DISPLAY_CURSOR RETURNS DBMS_XPLAN_TYPE_TABLE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SQL_ID                         VARCHAR2                IN     DEFAULT
 CURSOR_CHILD_NO                NUMBER(38)              IN     DEFAULT
 FORMAT                         VARCHAR2                IN     DEFAULT

推荐的使用参数为:

select * from table(dbms_xplan.display_cursor("sqlId",null,"ADVANCED  ALLSTATS LAST PEEKED_BINDS"));

如果sqlId为NULL,则显示当前session的执行计划。

select * from table(dbms_xplan.display_cursor(null,null,"ADVANCED  ALLSTATS LAST PEEKED_BINDS"));

其中format的解释如下:

IOSTATS: Assuming that basic plan statistics are
  ---                 collected when SQL statements are executed (either by
  ---                 using the gather_plan_statistics hint or by setting the
  ---                 parameter statistics_level to ALL), this format will show
  ---                 IO statistics for all (or only for the last as shown below)
  ---                 executions of the cursor.
  ---
  ---        MEMSTATS: Assuming that PGA memory management is enabled (i.e
  ---                  pga_aggregate_target parameter is set to a non 0 value),
  ---                  this format allows to display memory management
  ---                  statistics (e.g. execution mode of the operator, how
  ---                  much memory was used, number of bytes spilled to
  ---                  disk, ...). These statistics only apply to memory
  ---                  intensive operations like hash-joins, sort or some bitmap
  ---                  operators.
  ---
  ---        ROWSTATS: Assuming that basic plan statistics are
  ---                  collected when SQL statements are executed (either by
  ---                  using the gather_plan_statistics hint or by setting the
  ---                  parameter statistics_level to ALL), this format will show
  ---                  row count statistics for all (or only for the last as
  ---                  shown below) executions of the cursor.
  ---
  ---        ALLSTATS: A shortcut for "IOSTATS MEMSTATS ROWSTATS"
  ---
  ---        LAST: By default, plan statistics are shown for all executions of
  ---              the cursor. The keyword LAST can be specified to see only
  ---              the statistics for the last execution.
  ---
  ---        PEEKED_BINDS:显示解析时使用的绑定变量。

dbms_xplan.display_awr

数据来源是AWR仓库基表WRH$_SQL_PLAN

FUNCTION DISPLAY_AWR RETURNS DBMS_XPLAN_TYPE_TABLE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SQL_ID                         VARCHAR2                IN
 PLAN_HASH_VALUE                NUMBER(38)              IN     DEFAULT
 DB_ID                          NUMBER(38)              IN     DEFAULT
 FORMAT                         VARCHAR2                IN     DEFAULT
 CON_ID                         NUMBER(38)              IN     DEFAULT

dbms_xplan.display_sqlset

数据来源是SQL Set视图


以上内容主要整理自maclean的oracle执行计划教学视频和ppt:
www.askmaclean.com/archives/read-sql-execution-plan.html

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/35187.html

相关文章

  • oracle查看执行计划方法

    摘要:数据来源是仓库基表数据来源是视图以上内容主要整理自的执行计划教学视频和 查看执行计划的方法 Explain Plan For SQL 不实际执行SQL语句,生成的计划未必是真实执行的计划 必须要有plan_table SQLPLUS AUTOTRACE 除set autotrace traceonly explain外均实际执行SQL,但仍未必是真实计划 必须要有plan_tabl...

    ThreeWords 评论0 收藏0
  • 执行计划小总结

    摘要:工作中偶尔会遇到性能不好的复杂语句,在定位不了问题的情况下就需要执行计划出马了。执行计划顾名思义,就是内部执行语句的详细计划步骤。如可查看执行计划其实有很多种方法。 1. why 工作中偶尔会遇到性能不好的复杂sql语句,在定位不了问题的情况下就需要执行计划出马了。 2. what 执行计划顾名思义,就是oracle内部执行Sql语句的详细计划步骤。当然,其他数据库比如my...

    JiaXinYi 评论0 收藏0
  • 开源|性能优化利器:数据库审核平台Themis选型与实践

    摘要:正是存在问题,促使我们考虑引入数据库审核平台。的确,与很多互联网公司相比,数据库数十套的估摸并不是太大但与互联网类公司不同,类似宜信这类金融类公司对数据库的依赖性更大,大量的应用是重数据库类的,且其使用复杂程度也远比互联网类的复杂。 作者:韩锋 出处:DBAplus社群分享 Themis开源地址:https://github.com/CreditEaseDBA 拓展阅读:宜信开源|数...

    li21 评论0 收藏0
  • 开源|性能优化利器:数据库审核平台Themis选型与实践

    摘要:正是存在问题,促使我们考虑引入数据库审核平台。的确,与很多互联网公司相比,数据库数十套的估摸并不是太大但与互联网类公司不同,类似宜信这类金融类公司对数据库的依赖性更大,大量的应用是重数据库类的,且其使用复杂程度也远比互联网类的复杂。 作者:韩锋 出处:DBAplus社群分享 Themis开源地址:https://github.com/CreditEaseDBA 拓展阅读:宜信开源|数...

    wenhai.he 评论0 收藏0
  • 宜信开源|数据库审核软件Themis规则解析

    摘要:导语是宜信公司团队开发的一款数据库审核产品,可帮助开发人员快速发现数据库质量问题,提升工作效率。此平台可实现对数据库进行多维度对象结构文本执行计划及执行特征的审核,用以评估对象结构设计质量及运行效率。阀值阀值,代表违反规则的扣分上限。 导语 Themis是宜信公司DBA团队开发的一款数据库审核产品,可帮助DBA、开发人员快速发现数据库质量问题,提升工作效率。 此平台可实现对Oracle...

    andycall 评论0 收藏0

发表评论

0条评论

susheng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<