rownum和order by以及index的关系
2008-09-01 12:46:07 来源:WEB开发网本篇文章主要讨论rownum和排序以及索引的关系
问题1、rownum正序是指什么?
问题2、rownum和order by语句在一起时,执行的先后顺序是什么?order by语句如何影响rownum正序?
问题3、rownnum与索引之间的关系?
--Createtable
createtableDAIMIN
(IDNUMBERnotnull,
PARENTIDNUMBER
);
altertabledaiminaddconstraintpk_daiminprimarykey(id);
SQL>select*fromDAIMIN;
IDPARENTID
--------------------
16
23
51
32
问题1、rownum正序是指什么?
rownum正序是指rownum的返回,是按照1,2,3依次递增,如上面的查询显示的效果
问题2、rownum和order by语句在一起时,执行的先后顺序是什么?order by语句如何影响rownum正序?
下面执行两个语句进行比较:
SQL>selectrownumasr,t.IDfromdaimintorderbyt.ID;
RID
--------------------
11
22
33
45
现象:是rownum是按照正序来返回的
该语句的执行计划如下:
--------------------------------------------------------------------
|Id|Operation|Name|Rows|Bytes|Cost|
--------------------------------------------------------------------
|0|SELECTSTATEMENT|||||
|1|COUNT|||||
|2|INDEXFULLSCAN|PK_DAIMIN||||
--------------------------------------------------------------------
现象:使用了PK_DAIMIN这个主键索引,并且从执行计划中看出COUNT操作之后没有SORT ORDER BY操作
更多精彩
赞助商链接