zoukankan      html  css  js  c++  java
  • 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:物化视图。

    二、与B-TREE索引相关的执行计划

    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:应用域索引。

    三、与BIT-MAP索引相关的执行计划

    1、bitmap conversion:将位转换为rowid或相反。

    2、bitmap index:从位图中取一个值或一个范围。

    3、bitmap merge

    4、bitmap minus:

    5、bitmap or:

    四、与表连接相关的执行计划

    1、merge join:排序合并连接。

    2、nested loops:嵌套循环连接。

    3、hash join:哈希连接。

    4、cartesian:笛卡尔积连接。

    5、connect by:层次查询索引,多来自于start with子句。

    6、outer:外链接。

    1)merge join outer:

    2)nested loops outer:

    3)hash join outer:

    7、anti:反连接。

    1)merge join anti:

    2)nested loops anti:

    3)hash join anti:

    8、semi:半连接。

    1)merge join semi:

    2)nested loops semi:

    3)hash join semi:

    五、与集合相关的执行计划

    1、union-all:

    2、union(union-all,sort unique):

    3、concatenation:

    4、intersection:

    5、minus:

    六、与分区相关的索引

    1、partition single:访问单个分区。

    2、partition iterator:访问多个分区。

    3、partition all:访问所有分区。

    4、partition inlist:基于in列表中的值来访问分区。

    七、与sort相关的执行计划

    1、sort unique:排序、去重。

    2、sort join:为merge join的第一步,排序操作,一般与merge join联合使用。

    3、sort aggregate:当分组好的数据上使用分组函数时。

    4、sort order by:单纯的排序

    5、sort group by:排序并分组

    6、buffer sort:对临时结果进行一次内存排序。

    八、其他执行计划

    1、view:

    2、count:

    3、stopkey:目标sql中存在rownum<10这种情况。

    4、hash group by:

    5、inlist iterator:

    6、filter:过滤,相当于处理过的排序合并连接。

    7、remote:与dblink相关的执行计划。

    8、for update:

    9、sequence:使用了oracle序列。

    10、collection iterator:使用了表函数提取记录。

    11、fast dual:访问dual表。

    12、first row:获取查询的第一条记录。

    13、load as select:使用select进行直接路径insert操作,通常加/*+append*/提示。

    14、fixed table:访问固定的(X$/V$)表。

    15、fixed index:访问固定的索引。

    16、window buffer:支持分析函数的内部操作。

  • 相关阅读:
    20200226 Java IO流——廖雪峰
    20200225 Java 多线程(2)-廖雪峰
    20200225 Java 多线程(1)-廖雪峰
    20200224 尚硅谷ElasticSearch【归档】
    20200224 一 概述
    20200222 尚硅谷Dubbo【归档】
    20200222 四、dubbo原理
    Improved robustness of reinforcement learning policies upon conversion to spiking neuronal network platforms applied to Atari Breakout game
    Reinforcement learning in populations of spiking neurons
    Solving the Distal Reward Problem through Linkage of STDP and Dopamine Signaling
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/6656618.html
Copyright © 2011-2022 走看看