Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как убедить оптимизатор использовать hash join вместо nested loops / 3 сообщений из 3, страница 1 из 1
10.10.2006, 19:33
    #34045526
mrok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убедить оптимизатор использовать hash join вместо nested loops
Сервер ASA 9.0.2
Есть запрос такого типа
Код: plaintext
select * from (подзапрос_1), (подзапрос_2) where несколько условий соединения
Подзапрос 1 возвращает около 55000 строк, а подзапрос 2 - 35000 строк.

При этом соединения этих подзапросов происходят по nested loops. Запрос дико тормозит, за несколько минут не может выполнится, дольше ждать не стал . Пробовал увеличить параметр MAX_WORK_TABLE_HASH_SIZE до максимально возможного, но это не изменило план запроса.

Далее создал временную таблицу create global temporary table tt..., куда поместил результаты подзапроса 1. Переписал запрос с участием этой временной таблицы и получил желаемый hash join. После этого запрос выполнился за 30 сек.

Вопрос 1. Каким образом можно изменить план выполнения 1-го запроса? Я так понимаю хинтов, подобных use_hash, use_nl в Oracle, в ASA нет.
Вопрос 2. Также у меня есть подозрение что здесь дело в м.б. в отсутствии статистики по временной таблице, которая есть в подзапросе 2. Как ASA оценивает объем строк во временной таблице? Есть ли способ самому установить эту статистику?
...
Рейтинг: 0 / 0
10.10.2006, 19:45
    #34045553
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убедить оптимизатор использовать hash join вместо nested loops
mrok wrote:

> Далее создал временную таблицу create global temporary table tt..., куда
> поместил результаты подзапроса 1. Переписал запрос с участием этой
> временной таблицы и получил желаемый hash join. После этого запрос
> выполнился за 30 сек.

Замени глобальную временную таблицу на локальную, и на этом можно будет
остановиться.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
11.10.2006, 17:30
    #34048298
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убедить оптимизатор использовать hash join вместо nested loops
mrokВопрос 2. Также у меня есть подозрение что здесь дело в м.б. в отсутствии статистики по временной таблице, которая есть в подзапросе 2. Как ASA оценивает объем строк во временной таблице? Есть ли способ самому установить эту статистику?

Присоединяюсь к данному вопросу.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как убедить оптимизатор использовать hash join вместо nested loops / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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