Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Странные решения оптимизатора / 3 сообщений из 3, страница 1 из 1
06.04.2012, 20:35
    #37742648
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные решения оптимизатора
ASE 15.0.3

Есть таблица с двумя индексами:
Код: sql
1.
2.
3.
4.
5.
6.
create table t (
  date_field datetime null,
  char_field char(1) null
)
create index idx_d on t(date_field)
create index idx_c on t(char_field)

В char_field может быть около десяти разных значений, это поле является ссылкой на lookup таблицу. Как внешний ключ она явно не объявлена, связь делается на уровне приложения.

Делаю запросы:
Код: sql
1.
2.
3.
4.
5.
6.
7.
select t.*
from t 
where t.date_field between '01/01/2012' and '01/31/2012'

select t.*, lookup.description
from t join lookup on t.char_field=lookup.code
where t.date_field between '01/01/2012' and '01/31/2012'

Оба запроса должны вернуть (и возвращают) около десяти строк.

Все хорошо, но работает второй запрос намного медленней чем первый. Стал смотреть план и увидел странное. Не смотря на то что селективность по дате намнооого выше чем по флаговому полю, как только в запросе появляется связь по флаговому полю оптимизатор начинает использовать индекс idx_c вместо idx_d.
Спрашивается, почему и как с этим бороться?
...
Рейтинг: 0 / 0
06.04.2012, 21:45
    #37742693
cherrex_Den
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные решения оптимизатора
White Owl,

Покажите планы. Подозреваю,что во втором запросе merge_join происходит.
...
Рейтинг: 0 / 0
06.04.2012, 21:59
    #37742699
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странные решения оптимизатора
Как оказывается, все намного проще...
Мой вторичный DBA "подумал и решил что индекс по дате больше не нужен" и убил его.
Теперь меня больше мучает вопрос, зачем я взял этого кретина в свою группу???
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Странные решения оптимизатора / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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