执行计划的理解.

SORT(UNIQUE)

指把查询语句的输出结果变成唯一集合的过程。

1>一种是使用了“DISTINCT”,

2>一种是子查询以提供者角色向主查询提供其执行结果。


SELECT order_id,order_date

FROM orders

WHERE order_id in (SELECT order_id

                                     FROM order_item

                                     WHERE item_id = :b1

                                     AND order_qty>100);

前提是先进行子操作,否则就进行过滤操作.

SORT(UNIQUE)操作。如果该子查询被放在主查询之后执行,则该排序执行计划就不会被显示出来,此时显示的是FILTER。


SORT(AGGREGATE)

SORT(AGGREGATE)是指在没有GROUP BY的前提下,使用统计函数对全部数据对象进行运算时所显示出来的执行计划。

         那么MIN和MAX如果比该值小则将其替换。(因为索引是排序的,因此索引列值的最小值必然在索引的第一个块上)。而MAX则是仅仅读取最后一个索引块。想要获得这样的执行计划,不能使用WHERE和GROUP BY,当然还要求所要进行统计的列必须是索引的先行列(如果是组合索引,则该列必须位于最前面),并且在SELECT-List中不能添加其他任何额外的操作要求。


SORT(GROUP BY)

GROUP BY而进行的相关操作,为了进行分组就只能进行排序,因此所需分组的数据量越大则代价就越高。

         如果想通过GROUP BY 将海量表分为上千个组,在这种对超大型表执行GROUP BY时,就可以明显地感觉到该操作所需要的代价。当所要排序的数据超过一定量时,其代价就会变得非常大,解决该问题的一个方法就是使用HASH(GROUP BY)。


SORT(JOIN)

SORT(ORDER BY)


count

 select id,rownum from employee;(在id列上有一个主键索引)为了完成这个查询,优化器执行一个全索引扫描(主键索引),后跟一个count操作生成每个行的rownum值,

count操作不需要等待得到整个记录集,随着从employee表中返回记录,rownum计数器进行增量,从而确定每个记录的rownum.


count stopykey

例2:在rownum伪列上使用一个限定

 select id,rownum from employee where rownum<10;

     为了实施限定条件,优化器用count stopkey操作代替count操作,它将rownum伪列的增量值与限定条件中指定的值进行比较,如果rownum伪列的值大于限定条件中指定的值,则查询不再返回更多的行!


SORT ORDER BY STOPKEY

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8568259/viewspace-2105950/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8568259/viewspace-2105950/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值