Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Заставить использовать индекс / 4 сообщений из 4, страница 1 из 1
28.10.2016, 12:18
    #39336105
BeginerSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заставить использовать индекс
Всем привет!

Есть запрос, который должен отобрать данные за определенный период. Если период небольшой, то используются индексы. Если же период большой, то идет FULL SCAN таблицы. Почему так? И можно его как-то обмануть, чтобы всегда использовались индексы?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
--- Работает быстро
select * from Table 
   where BeginDate>= '01.01.16'
              and EndDate < '27.10.16'

--- Работает медленно, идет FULL SCAN таблицы
select * from Table 
   where BeginDate>= '01.01.01'
              and EndDate < '27.10.16'
...
Рейтинг: 0 / 0
28.10.2016, 12:30
    #39336129
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заставить использовать индекс
Почему ты думаешь, что индексный доступ всегда лучше, чем FULL SCAN ?
...
Рейтинг: 0 / 0
28.10.2016, 12:33
    #39336134
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заставить использовать индекс
BeginerSQLПочему так? И можно его как-то обмануть, чтобы всегда использовались индексы?
1. Потому что так дешевле/быстрее
2. Можно, но работать будет дольше и грузить ввод-вывод будет сильнее.
...
Рейтинг: 0 / 0
28.10.2016, 15:10
    #39336345
Desert_Nomad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заставить использовать индекс
авторИ можно его как-то обмануть, чтобы всегда использовались индексы?
Можно. Хинт /*+ INDEX(...)*/ вам в помощь.

Но далеко не факт, что это будет лучше и быстрее.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Заставить использовать индекс / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]