без допълнителна информация, можем само да приемем, че индексът не се използва с функцията to_number() се прилага към колоната. Както е показано в този SO въпрос , преобразуването на тип може да попречи на оптимизатора да използва индекс.
Като цяло:
- когато добавите функция към колона (т.е.:
to_number(id)
) оптимизаторът няма да може да използва обикновените индекси на тази колона, - ако е възможно, трябва да използвате колоната raw. Например:вместо
WHERE trunc(col) = DATE '2009-08-27'
трябва да използвате:WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- ако наистина трябва да приложите функция към колона, можете да използвате функционално базиран индекс