Работают ли индексы с групповой функцией в Oracle?

Я выполняю следующий запрос.

SELECT Table_1.Field_1,
           Table_1.Field_2,
           SUM(Table_1.Field_5) BALANCE_AMOUNT
      FROM Table_1, Table_2
     WHERE Table_1.Field_3 NOT IN (1, 3)
       AND Table_2.Field_2 <> 2
       AND Table_2.Field_3 = 'Y'
       AND Table_1.Field_1 = Table_2.Field_1
       AND Table_1.Field_4 = '31-oct-2011'
     GROUP BY Table_1.Field_1, Table_1.Field_2;

Я создал индекс для столбцов (Поле_1, Поле_2, Поле_3, Поле_4) из Таблица_1 , но индекс не используется.

Если я удалю SUM (Table_1.Field_5) из предложения select, то индекс будет использоваться.

Меня смущает, если оптимизатор не использует этот индекс или его из-за функции SUM () , которую я использовал в запросе.

Пожалуйста, поделитесь своим объяснением по этому же поводу.

5
задан Ollie 17 October 2011 в 08:48
поделиться