`
liwenshui322
  • 浏览: 519034 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle dbms_xplan包简介

 
阅读更多

 一. 用途介绍

       dbms_xplan包用于展示执行计划。执行计划存储在计划表中,库缓存中和AWR中,dbms_xplan包能从这些地方将执行计划取出,格式化之后展示给我们。

 

        二. dbms_xplan输出

        dbms_xplan的输出就是执行计划的信息,从上往下看一般是这样的:

        第一部分:

        

 
         SQL_ID:识别父游标

        child number:这个sql_id子游标序号,识别子游标

        SQL文本内容:展示的是该执行计划是哪条SQL语句对应的

 

        第二部分:


 

        展示的是这条SQL语句被拆分成好几步来执行,提供了每一步的评估和运行统计。

        id列:步骤序号,如果前面有*,表示这一步会根据某一个过滤条件过滤数据。

        opration列:执行的操作,比如索引扫描,选择数据,表连接等等。

        name列:操作的对象,比如序号为3的操作是针对表主键T_PK的操作。

        rows:此操作返回的记录条数。

        bytes:此操作返回的记录字节数。

        cost(%cpu):操作的开销,这是一个累计值。(我们可以看到序号4的操作开销最大)括号里面的值是cpu开销的百分比,比如0操作的百分比是97%,1操作的百分比是3%。

        time:操作需要的时间,这也是一个累计值。(注意这个值可能不准确,因为oracle是采样计算的这个值)

 

        第三部分:

        接着我们会看到这样一部分信息:

        

 

        这里说明的是过滤数据步骤的具体过滤条件,比如:序号为4的过滤条件是T1.ID > 6. 注意前缀,序号4的为filter,说明是全表扫描T1,然后按照条件过滤,序号3为access,说明是按照指定的条件去有目的的访问。

 

        第四部分:

        我们可能在下面还是会看到这样一部分信息:

        

 

        说明的是每一步骤具体返回的字段信息,比如序号为4的步骤返回的是T1.N列。

        

 

        三. display函数

        调用display函数用于展示存储在计划表中的执行计划,格式如下:

        select * from table(dbms_xplan.display(table_name,statement_id,format,filter_preds))

        table_name:指定计划表的名字,默认值为plan_table,填null代表取默认值。

        statement_id:指定sql语句的名字,默认值为null,代表显示最近插入计划表的执行计划。

        format:输出内容的格式,基本的有:basic,typical,serial,all和advanced. basic:显示的是最基本的信息,advanced显示的是最全的信息。具体见下图:

         

 

        filter_preds:指定在查询计划表时,添加一个约束,比如statement_id ='test3',默认值为null,表示显示最近插入计划表的执行计划。

        示例如下:

        basic的结果:

        

 

        advanced的结果:

        

 

 

 

        四.  display_cursor函数

        该函数显示存储在库缓存中的执行计划,格式如下所示:

        select * from table(dbms_xplan.display_cursor(sql_id,cursor_child_no,format)) 

        sql_id:被指定返回执行计划的SQL语句的父游标,默认值为null,代表返回当前会话最后被执行的SQL语句的执行计划。

        cursor_child_no:指定父游标下子游标的序号,默认值为0,如果设定为null,代表返回所有的子游标的执行计划。

        format:跟display函数一样。

  • 大小: 16.5 KB
  • 大小: 31.5 KB
  • 大小: 36.7 KB
  • 大小: 28.5 KB
  • 大小: 60.2 KB
  • 大小: 38.7 KB
  • 大小: 8.4 KB
  • 大小: 21.4 KB
  • 大小: 51.5 KB
2
1
分享到:
评论

相关推荐

    Re-post: DBMS_XPLAN : Display Oracle Execution Plans

    描述虽然为空,但根据标题我们可以推测,这篇博文可能是关于如何使用DBMS_XPLAN包来解析和理解Oracle的执行计划,这对于数据库管理员和开发人员优化SQL性能至关重要。 标签“源码”和“工具”暗示了这篇博文可能...

    Oracle中使用DBMS_XPLAN处理执行计划详解

    DBMS_XPLAN是Oracle提供的一个用于查看SQL计划,包括执行计划和解释计划的包;在以前查看SQL执行计划的时候,我都是使用set autotrace命令,不过现在看来,DBMS_XPLAN包给出了更加简化的获取和显示计划的方式。 这5...

    Oracle PL/SQL常用47个工具包

    24. **DBMS_XPLAN**: 显示查询执行计划,帮助优化查询性能。 25. **DBMS_METADATA_ADD_TRANSFORM**: 应用转换到元数据提取,如去除密码或添加注释。 26. **DBMS_SHARED_POOL**: 管理共享池中的对象,优化内存使用...

    DBA笔试题.wps

    这篇文档整合了热门的oracle DBA面试问题 一. SQL tuning 类  1:列举几种表连接方式  hash join/merge join/nest loop(cluster join)/index join  2:不借助第三方工具,怎样查看sql的执行计划  set autot ...

    oracle的索引学习

    为了分析SQL查询的执行效率,Oracle提供了多种工具,如Autotrace和DBMS_XPLAN包。Autotrace可以方便地显示执行计划和统计信息,通过设置不同的参数,可以选择仅显示执行计划(`EXPLAIN`)或统计信息(`STATISTICS`),...

    获取SQL语句的执行计划v1

    本文档详细介绍了几种不同的方法来获取SQL语句的执行计划,包括使用autotrace、EXPLAIN PLAN以及DBMS_XPLAN.DISPLAY_CURSOR等。 #### 方法1:使用autotrace查看执行计划 **配置使用autotrace** 为了能够使用...

    ORACLE 19C SQL调优指南 中文版 Oracle DBA

    通过`EXPLAIN PLAN`或`DBMS_XPLAN`包,我们可以查看和分析执行计划,找出可能的性能瓶颈。 2. **索引优化**:索引可以显著加快数据检索速度。在适当列上创建索引可以减少全表扫描,但过多的索引会增加写操作的开销...

    Oracle运维最佳实践-下.pdf 带书签

    - 使用`DBMS_WORKLOAD_REPOSITORY`包来查询AWR数据,如`DBMS_WORKLOAD_REPOSITORY.REPORT_SQL_MONITOR`函数可以生成特定SQL语句的性能报告。 - **2.1.2 SPA(SQL Performance Analyzer)** - SPA是一个强大的工具...

    oracle sql_tuning

    3. **执行计划分析**:通过EXPLAIN PLAN或DBMS_XPLAN工具查看执行计划,分析行源操作符、成本、时间及I/O统计,识别可能导致性能问题的操作。 4. **索引优化**:创建合适的索引能加速数据检索。考虑B树索引、位图...

    oracle_V$SQLAREA_.rar_oracle_oracle V$sqlarea

    2. **执行计划**:`SQL_PLAN` 列提供了SQL语句的执行计划,但通常是以16进制格式存储,需要通过其他方式(如DBMS_XPLAN)进行解码查看。 3. **解析次数**:`PARSING_USER_ID` 和 `PARSING_SCHEMA_ID` 分别记录了SQL...

    Oracle_Database_11g_DBA_Handbook

    书中还会介绍如何使用Gather Schema Statistics、DBMS_METADATA和DBMS_XPLAN等实用程序来诊断和解决性能问题。 在Oracle 11g中,EM(Enterprise Manager)是管理和监控数据库的强大工具。通过EM,DBA可以进行远程...

    oracle常用监控SQL语句集合

    `DBMS_XPLAN`包提供了更多的选项来详细分析执行计划。 9. **资源使用情况**: `SELECT * FROM v$sysstat`提供了系统统计信息,如缓冲区命中率、逻辑读次数等。`SELECT * FROM v$resource_limit`展示了资源限制的...

    BLOG_【故障处理】Oracle_lhr_队列等待之TX - row lock contention

    - 使用`DBMS_XPLAN.DUMP_CURSOR`来查看SQL语句的实际执行计划,包括绑定变量的信息。 #### 六、结论 “enq:TX-rowlockcontention”等待事件通常是由于行级锁定竞争引起的,解决这类问题的关键在于理解锁定机制...

    Oracle Database 10g性能调整与优化ch06.pdf

    ### Oracle Database 10g性能调整与优化:第六章概览 #### 6.1 Oracle的SQLTRACE实用程序 在Oracle Database 10g中,...此外,Oracle 10g还引入了诸如DBMS_MONITOR和TRCSESS等新工具,进一步提高了性能调整的能力。

    ORACLE_SQL性能优化(这个很全的)

    8. **SQL重写**:通过DBMS_RLS、DBMS_REWRITE等包,可以实现SQL语句的动态或静态重写,以提高性能或满足安全需求。 9. **内存管理**:PGA(程序全局区)和SGA(系统全局区)的大小调整对性能有很大影响。理解如何...

    oracle_day01_all.zip_oracle

    了解如何使用EXPLAIN PLAN分析查询执行计划,以及如何使用DBMS_XPLAN展示更详细的信息。 9. **数据库维护**:学习数据库的日常维护任务,如空间管理、表分区、数据库性能监控和问题诊断。 10. **Oracle工具**:...

    ORACLE EXPLAIN PLAN的总结

    1. SQL*Plus:内置的DBMS_XPLAN包提供了更详细的视图,包括动态性能视图V$SQL_PLAN。 2. Oracle SQL Developer:图形化的界面使得执行计划更易理解,同时提供优化建议。 3. Toad、PL/SQL Developer等第三方工具也...

    oracle优化文档

    在Oracle中,我们可以通过`EXPLAIN PLAN`或`DBMS_XPLAN`包来查看执行计划。例如,使用`EXPLAIN PLAN FOR`语句预解析SQL,然后用`SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)`显示其详细信息。 执行计划中的关键指标...

    《Pro Oracle SQL》Chapter10 -- 10.2 Optimizing SQL -10.2.1Testing Execution Plans

    - **DBMS_XPLAN**:这是一个更高级的包,提供了更多的选项来显示执行计划的详细信息,如成本、行数估计和访问路径。使用`DBMS_XPLAN.DISPLAY`或`DBMS_XPLAN.DISPLAY_CURSOR`函数,可以获取带有格式化的执行计划和...

Global site tag (gtag.js) - Google Analytics