ATUALIZAÇÃO: Tente fazer a coluna col NOT NULL. Essa é a razão pela qual não está usando o índice. Quando não é nulo, aqui está o plano.
SELECT STATEMENT, GOAL = ALL_ROWS 69 10 30
HASH GROUP BY 69 10 30
INDEX FAST FULL SCAN SANDBOX TEST_INDEX 56 98072 294216
Se o otimizador determinar que é mais eficiente NÃO usar o índice (talvez devido a reescrever a consulta), não o fará. As dicas do otimizador são apenas isso, ou seja, dicas para informar ao Oracle um índice que você gostaria isso para usar. Você pode pensar neles como sugestões. Mas se o otimizador determinar que é melhor não usar o índice (novamente, como resultado da reescrita da consulta, por exemplo), ele não usará.
Consulte este link:http://download. oracle.com/docs/cd/B19306_01/server.102/b14211/hintsref.htm "A especificação de uma dessas dicas faz com que o otimizador escolha o caminho de acesso especificado somente se o caminho de acesso estiver disponível com base na existência de um índice ou cluster e nas construções sintáticas da instrução SQL. Se uma dica especificar um caminho de acesso indisponível, então o otimizador o ignora."
Como você está executando uma operação de contagem(*), o otimizador determinou que é mais eficiente apenas varrer a tabela inteira e o hash em vez de usar seu índice.
Aqui está outro link útil sobre dicas:http://www.dba-oracle.com/t_hint_ignored. htm