Поскольку у вас есть индекс в поле даты, вы должны написать свой запрос таким образом, чтобы этот индекс можно было использовать. Это невозможно с функциями EXTRACT, поскольку Oracle должен просмотреть все данные и вычислить условие для каждой строки, чтобы определить, соответствует ли оно.
Индекс даты можно использовать, если у вас есть конкретная дата или диапазон дат. В вашем случае вы ищете диапазон дат. Таким образом, запрос может быть записан как:
SELECT * FROM TABLE T
WHERE T.FDATE BETWEEN TO_DATE('1.6.2011', 'DD.MM.YYYY') AND TO_DATE('30.6.2011', 'DD.MM.YYYY');