Sì, LOW_VALUE e HIGH_VALUE ti indicheranno i valori minimo e massimo nella colonna ma :
- sono memorizzati come colonne RAW(32), quindi il significato non sarà immediatamente evidente
- Saranno all'ultima volta che le statistiche sono state raccolte per la tabella, quindi potrebbero non essere accurate (a meno che tu non raccolga esplicitamente le statistiche prima di usarle)
Se indicizzi la colonna, MIN(a) e MAX(a) dovrebbero essere molto veloci come in questo esempio dove T1 ha 50000 righe ed è indicizzato su 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
Il risultato è lo stesso se si seleziona MAX invece di MIN. Tuttavia, se selezioni MIN e MAX in una singola istruzione select, il risultato è diverso:
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
Ciò suggerisce che potrebbe essere meglio acquistarli separatamente, anche se non l'ho dimostrato in modo definitivo.