Sim, LOW_VALUE e HIGH_VALUE informarão os valores mínimo e máximo na coluna mas :
- eles são armazenados como colunas RAW(32), portanto, o significado não será imediatamente aparente
- eles serão da última vez que as estatísticas foram coletadas para a tabela, portanto, podem não ser precisas (a menos que você colete estatísticas explicitamente antes de usá-las)
Se você indexar a coluna, MIN(a) e MAX(a) devem ser muito rápidos, como neste exemplo, onde T1 tem 50.000 linhas e está indexado em 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
O resultado é o mesmo se você selecionar MAX em vez de MIN. No entanto, se você selecionar MIN e MAX em uma única instrução select, o resultado será diferente:
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
Isso sugere que pode ser melhor obtê-los separadamente, embora eu não tenha provado isso de forma conclusiva.