点击上方蓝字关注我们


AND-EQUAL(INDEX MERGE)


缺 陷
01
涉及到的索引都为单列索引,且索引都在查询中出现,谓词使用=关系符号连接
02
从Oracle 10g开始,and_equal操作被废弃,Oracle不再支持,这里废弃的含义并不是被彻底移除,而是说不再进行改进,通过hints仍然可以强制实现Index Merge的and_equal操作。

INDEX JOIN
对index进行关联,oracle通过hash index join的方式实现了避免对表的访问.所有的数据都从索引中直接获得.它不受查询条件影响,可以是唯一索引,也可以是多列索引

缺 陷
01
如果不是所有数据都能从索引获得,那么将不会使用index join

VIEW

FILTER
FILTER直译过来就是过滤、筛选的意思,它是一种特殊的执行计划。
FILTER 类型的执行计划实际上是一种改良的嵌套循环连接,FILTER的性能跟列值distinct数有关
执 行 过 程


1. 得到一个驱动结果集。
2. 根据一定的过滤条件从上述驱动结果集中滤除不满足条件的记录。
3. 结果集中剩下的记录就会返回给最终用户或者继续参与下一个执行步骤。



SORT

SORT AGGREGATE
通常发生在使用一些聚合函数的时候,sum(),avg(),min(),max(),count()等等,实际上sort aggregate不做真正的sort,并不会用到排序空间,而是通过一个全局变量+全表或全索引扫描来实现

SORT UNIQUE
需要取distinct值的时候或in条件子查询

SORT GROUP BY
发生在有group by子句的时候

SORT ORDER BY
发生在有order by子句的时候

SORT JOIN
发生在出现merge join的情况下,两张关联的表要各自做sort,然后再merge

UNION/UNION ALL


区别:
UNION ALL仅仅是简单地将两个结果集合并,并不做任何额外的处理;
UNION 除了将两个结果集简单合并之外,还会对合并后的结果集做排序和去重

CONCAT

CONNECT BY
▼▼▼
CONNECT BY是 Oracle数据库中层次查询(Hierarchical Queries)。

扫码
长按关注

关注
惊喜不断




