Ve výchozím nastavení jsou všechny indexy v Oracle unclustered. Jedinými seskupenými indexy v Oracle jsou indexy primárního klíče IOT (Index-Organized Tables).
Zda je tabulka IOT, můžete určit podle IOT_TYPE ve sloupci ALL_TABLES zobrazení (jeho primární klíč lze určit dotazem na ALL_CONSTRAINTS a ALL_CONS_COLUMNS zhlédnutí).
Zde je několik důvodů, proč může váš dotaz vrátit seřazené řádky:
- Vaše tabulka je uspořádána podle indexu a je
FIELDje hlavní částí jeho primárního klíče. - Vaše tabulka je uspořádána do hromady, ale řádky jsou náhodně seřazeny podle
FIELD, to se někdy stává ve sloupci zvyšující se identity.
Případ 2 vrátí seřazené řádky pouze náhodou. Pořadí vložek není zaručeno, navíc společnost Oracle může znovu použít staré bloky, pokud některé náhodou budou mít v budoucnu volné místo, což naruší křehké řazení.
Případ 1 většinu času vrátí uspořádané řádky, ale neměli byste na to spoléhat, protože pořadí vrácených řádků závisí na algoritmu přístupové cesty, která se může v budoucnu změnit (nebo pokud změníte parametr DB, zejména paralelismus ).
V obou případech, pokud chcete uspořádané řádky, měli byste zadat klauzuli ORDER BY:
SELECT field
FROM (SELECT field
FROM TABLE
ORDER BY field)
WHERE rownum <= 100;