Ja, LOW_VALUE og HIGH_VALUE fortæller dig minimums- og maksimumværdierne i kolonnen men :
- de er gemt som RAW(32)-kolonner, så betydningen vil ikke være umiddelbart tydelig
- de vil være fra sidste gang, der blev indsamlet statistik for tabellen, så de er muligvis ikke nøjagtige (medmindre du eksplicit indsamler statistik, før du bruger dem)
Hvis du indekserer kolonnen, skal MIN(a) og MAX(a) være meget hurtige som i dette eksempel, hvor T1 har 50000 rækker og er indekseret på OBJECT_ID:
SQL> select min(object_id) from t1;
MIN(OBJECT_ID)
--------------
100
------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 5 | 2 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
| 2 | INDEX FULL SCAN (MIN/MAX)| T1_ID | 53191 | 259K| 2 (0)| 00:00:01 |
------------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
2 consistent gets
0 physical reads
0 redo size
419 bytes sent via SQL*Net to client
380 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
Resultatet er det samme, hvis du vælger MAX i stedet for MIN. Men hvis du vælger MIN og MAX i en enkelt valgsætning, er resultatet anderledes:
SQL> select min(object_id), max(object_id) from t1;
MIN(OBJECT_ID) MAX(OBJECT_ID)
-------------- --------------
100 72809
-------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 5 | 34 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
| 2 | INDEX FAST FULL SCAN| T1_ID | 53191 | 259K| 34 (0)| 00:00:01 |
-------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
125 consistent gets
0 physical reads
0 redo size
486 bytes sent via SQL*Net to client
380 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
Dette tyder på, at det kan være bedre at få dem separat, selvom jeg ikke endegyldigt har bevist det.