Ja, LOW_VALUE und HIGH_VALUE zeigen Ihnen die minimalen und maximalen Werte in der Spalte aber :
- sie werden als RAW(32)-Spalten gespeichert, daher ist die Bedeutung nicht sofort ersichtlich
- Sie beziehen sich auf den Stand der letzten Statistikerfassung für die Tabelle und sind daher möglicherweise nicht genau (es sei denn, Sie erfassen explizit Statistiken, bevor Sie sie verwenden)
Wenn Sie die Spalte indizieren, sollten MIN(a) und MAX(a) sehr schnell sein, wie in diesem Beispiel, wo T1 50000 Zeilen hat und auf OBJECT_ID:
indiziert istSQL> 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
Das Ergebnis ist das gleiche, wenn Sie MAX statt MIN wählen. Wenn Sie jedoch MIN und MAX in einer einzigen Auswahlanweisung auswählen, ist das Ergebnis anders:
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
Dies deutet darauf hin, dass es besser sein könnte, sie separat zu erwerben, obwohl ich das nicht endgültig bewiesen habe.