• Oracle执行计划总结


    一、ORACLE中常见执行计划

    表访问的执行计划

    1、table access full:全表扫描。它会访问表中的每一条记录。

    2、table access by user rowid:输入源rowid来自于用户指定。

    3、table access by index rowid:输入源rowid来自于索引。

    4、table access by global index rowid:全局索引获取rowid,然后再回表。

    5、table access by local index rowid:分区索引获取rowid,然后再回表。

    6、table access cluster:通过索引簇的键来访问索表。

    7、external table access:访问外部表。

    8、result cache:结果集可能来自于缓存。

    9、mat_view rewrite access:物化视图。

    索引访问的执行计划

    1、index unique scan:只返回一条rowid的索引扫描,或者unique索引的等值扫描。

    2、index range scan:返回多条rowid的索引扫描。

    3、index full scan:顺序扫描整个索引。

    4、index fast full scan:多块读方式扫描整个索引。

    5、index skip scan:多应用于组合索引中,引导键值为空的情况下索引扫描。

    6、and-equal:合并来自于一个或多个索引的结果集。

    7、domain index:应用域索引。

    表连接的执行计划

    表连接的几种方式:

    1、SORT MERGE JOIN(排序-合并连接)

    2、NESTED LOOPS(嵌套循环)

    3、HASH JOIN(哈希连接)

    4、CARTESIAN PRODUCT(笛卡尔积)



    二、怎样查看Oracle执行计划

    1、plsql Developer中查看

    在plsql中:工具  —>  首选项 —>   窗口类型  —>  计划窗口  —>  根据需要配置要显示在执行计划中的列

    执行计划的常用列字段解释:

    基数(Rows):Oracle估计的当前操作的返回结果集行数

    字节(Bytes):执行该步骤后返回的字节数

    耗费(COST)、CPU耗费:Oracle估计的该步骤的执行成本,用于说明SQL执行的代价,理论上越小越好(该值可能与实际有出入)

    时间(Time):Oracle估计的当前操作所需的时间

    在SQL窗口执行完一条select语句后按 F5 即可查看刚刚执行的这条查询语句的执行计划

    2、sql命令查看 

    (1)explain plan命令

        例子:explain plan for  select * from zyfs.contact_order where rowid = 'AAAU1wADyAAAAFLAAA';

                    select * from table(dbms_xplan.display);

    (2)sqlplus的autotrace开关    

    autotrace开关可以在sqlplus下得到目标sql的执行计划,也可以同时得到目标sql的统计信息。autotrace开关的具体语法如下:

    set autotrace {off|on|traceonly} [explain] [statistics]

    具体使用方法如下:

    (1)set autotrace on:显示目标sql的执行结果,执行计划和统计信息。

    (2)set autotrace off:只显示目标sql的执行结果,为默认值。

    (3)set autotrace traceonly:显示执行结果数量,执行计划和统计信息。

    (4)set autotrace traceonly explain:只显示目标sql的执行计划。

    (5)set autotrace tranceonly statistics:只显示目标sql的执行结果数量和统计信息。

    三、看懂执行计划

        执行计划其实是一颗树,层次最深的先执行,层次相同,上面的先执行。显示的时候已经按照层次缩进。

        例如:

    在plsql工具中有查看顺序的按钮,如上图红色圈子。

  • 相关阅读:
    100-days: twelve
    100-days: eleven
    100-days: ten
    [PKUWC 2018]随机算法
    [CTSC 2018]假面
    APIO 2018 游记
    CTSC 2018 游记
    [CQOI 2018]解锁屏幕
    [CQOI 2018]九连环
    [CQOI 2018]破解D-H协议
  • 原文地址:https://www.cnblogs.com/jnba/p/10677657.html
Copyright © 2020-2023  润新知