Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
06.04.2012, 20:35
|
|||
---|---|---|---|
Странные решения оптимизатора |
|||
#18+
ASE 15.0.3 Есть таблица с двумя индексами: Код: sql 1. 2. 3. 4. 5. 6.
В char_field может быть около десяти разных значений, это поле является ссылкой на lookup таблицу. Как внешний ключ она явно не объявлена, связь делается на уровне приложения. Делаю запросы: Код: sql 1. 2. 3. 4. 5. 6. 7.
Оба запроса должны вернуть (и возвращают) около десяти строк. Все хорошо, но работает второй запрос намного медленней чем первый. Стал смотреть план и увидел странное. Не смотря на то что селективность по дате намнооого выше чем по флаговому полю, как только в запросе появляется связь по флаговому полю оптимизатор начинает использовать индекс idx_c вместо idx_d. Спрашивается, почему и как с этим бороться? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.04.2012, 21:45
|
|||
---|---|---|---|
|
|||
Странные решения оптимизатора |
|||
#18+
White Owl, Покажите планы. Подозреваю,что во втором запросе merge_join происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=55&mobile=1&tid=2010155]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 248ms |
total: | 382ms |
0 / 0 |