AKTUALIZACE: Zkuste nastavit sloupec col NOT NULL. To je důvod, proč nepoužívá index. Když to není null, tady je plán.
SELECT STATEMENT, GOAL = ALL_ROWS 69 10 30
HASH GROUP BY 69 10 30
INDEX FAST FULL SCAN SANDBOX TEST_INDEX 56 98072 294216
Pokud optimalizátor určí, že je efektivnější index NEPOUŽÍVAT (možná kvůli přepsání dotazu), tak to nepoužije. Tipy Optimalizátoru jsou přesně takové, jmenovitě rady, jak sdělit společnosti Oracle index, který byste chtěli to použít. Můžete je považovat za návrhy. Pokud však optimalizátor určí, že je lepší index nepoužívat (opět například v důsledku přepsání dotazu), tak to nebude.
Podívejte se na tento odkaz:http://download. oracle.com/docs/cd/B19306_01/server.102/b14211/hintsref.htm "Zadání jedné z těchto nápověd způsobí, že optimalizátor zvolí zadanou přístupovou cestu pouze v případě, že je přístupová cesta dostupná na základě existence indexu nebo klastru a syntaktických konstrukcí příkazu SQL. Pokud nápověda uvádí nedostupnou přístupovou cestu, pak to optimalizátor ignoruje."
Vzhledem k tomu, že spouštíte operaci count(*), optimalizátor zjistil, že je efektivnější místo použití indexu prohledat celou tabulku a hash.
Zde je další užitečný odkaz na rady:http://www.dba-oracle.com/t_hint_ignored. htm