Индекс оракула в табличном соединении - PullRequest
2 голосов
/ 10 марта 2011

если я сделаю

select * 
    from table1 
    where table1.col1 = 'xx' 
        and table1.col2 = 'yy' 
        and table1.col3= 'zz'`

план выполнения показывает полное сканирование таблицы.Индексы в этой таблице существуют для col4 и col5.Нужно ли устанавливать индекс для каждого из столбцов col1, col2, col3, чтобы сделать запрос более быстрым?

Также, если запрос выглядит так:

select * 
    from table1,table2 
    where table1.col1=table2.col2 
        and table1.col2 = 'yy' 
        and table1.col3= 'zz'

Если мы создаемИндекс на col1 и col2 будет достаточно?

1 Ответ

1 голос
/ 10 марта 2011

Вы должны попробовать добавить индексы для столбцов, которые вы используете в запросе:

  • table1 col1
  • table1 col2
  • table1 col3
  • table2 col2

Обратите внимание, что в некоторых случаях может быть выгодно иметь многостолбцовые индексы, например:

  • table1 (col2, col3)

Трудно предсказать, какой индекс будет работать лучше, не зная больше о ваших данных, но вы можете попробовать несколько различных возможностей и посмотреть, что работает лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...