索引可以消除排序。。。
SQL> SELECT object_id,object_name
2 FROM(
3 SELECT object_id,object_name FROM t ORDER BY object_id DESC
4 ) WHERE ROWNUM<6;
执行计划
----------------------------------------------------------
Plan hash value: 4004299889
---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 5 | 395 | 3 (0)| 00:00:01 |
|* 1 | COUNT STOPKEY | | | | | |
| 2 | VIEW | | 74177 | 5722K| 3 (0)| 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID| T | 74177 | 5722K| 3 (0)| 00:00:01 |
| 4 | INDEX FULL SCAN DESCENDING| IDX_T | 6 | | 2 (0)| 00:00:01 |
---------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(ROWNUM<6)
Note
-----
- dynamic sampling used for this statement (level=2)
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
5 consistent gets
0 physical reads
0 redo size
633 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
5 rows processed