WEB开发网
开发学院数据库Oracle rownum和order by以及index的关系 阅读

rownum和order by以及index的关系

 2008-09-01 12:46:07 来源:WEB开发网   
核心提示:本篇文章主要讨论rownum和排序以及索引的关系 问题1、rownum正序是指什么?问题2、rownum和order by语句在一起时,执行的先后顺序是什么?order by语句如何影响rownum正序?问题3、rownnum与索引之间的关系?--CreatetablecreatetableDAIMIN(IDNUMBE

本篇文章主要讨论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操作

1 2 3 4  下一页

Tags:rownum order by

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接