sem informações adicionais, podemos apenas supor que um índice não está sendo usado com a função to_number() aplicada à coluna. Conforme mostrado em esta pergunta SO , uma conversão de tipo pode impedir que o otimizador use um índice.
No geral:
- quando você adiciona uma função a uma coluna (por exemplo:
to_number(id)
), o otimizador não poderá usar os índices regulares nessa coluna, - se for possível, você deve usar a coluna raw. Por exemplo:em vez de
WHERE trunc(col) = DATE '2009-08-27'
você deve usar:WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- se você realmente precisa aplicar uma função a uma coluna, pode usar um índice baseado em função