|
本帖最后由 lovehewenyu 于 2013-12-3 16:41 编辑
2009532140 发表于 2013-12-3 16:28 ![]()
浅显。回答错了....
你觉得那样会走索引么?
哈哈,对!
有点蒙了,max ,min 同时使用,直接加索引是达不到优化的效果!
wei-xh,大师说的对分开写,并加索引可以优化这个问题
解决方式如下:
ORACLE:11.2.0.3
SQL> select max(object_id),min(object_id) from t;
MAX(OBJECT_ID) MIN(OBJECT_ID)
-------------- --------------
91062 2
Execution Plan
----------------------------------------------------------
Plan hash value: 2966233522
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 13 | 324 (1)| 00:00:04 |
| 1 | SORT AGGREGATE | | 1 | 13 | | |
| 2 | TABLE ACCESS FULL| T | 81922 | 1040K| 324 (1)| 00:00:04 |
---------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1164 consistent gets
0 physical reads
0 redo size
501 bytes sent via SQL*Net to client
415 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> select a_max,b_min from (select max(object_id) a_max from t) a, (select min(object_id) b_min from t) b;
A_MAX B_MIN
---------- ----------
91062 2
Execution Plan
----------------------------------------------------------
Plan hash value: 3927920268
--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 4 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | 1 | 26 | 4 (0)| 00:00:01 |
| 2 | VIEW | | 1 | 13 | 2 (0)| 00:00:01 |
| 3 | SORT AGGREGATE | | 1 | 13 | | |
| 4 | INDEX FULL SCAN (MIN/MAX)| IDX_T | 1 | 13 | 2 (0)| 00:00:01 |
| 5 | VIEW | | 1 | 13 | 2 (0)| 00:00:01 |
| 6 | SORT AGGREGATE | | 1 | 13 | | |
| 7 | INDEX FULL SCAN (MIN/MAX)| IDX_T | 1 | 13 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
4 consistent gets
0 physical reads
0 redo size
483 bytes sent via SQL*Net to client
415 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed |
|