Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Hash join: в памяти или на диске / 6 сообщений из 6, страница 1 из 1
05.09.2019, 12:06
    #39857828
Valergrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hash join: в памяти или на диске
Кто-нибудь точно знает, при каких условиях Оракл при хэш-джойне решает что он не хочет выделять столько памяти одному процессу, и решает выполнять хэш-джойн используя one-pass и диск? Мы говорим про workarea_size_policy = auto, конечно.

Устно я слышал версии "2% от pga_aggregate_target", "5% от pga_memory_allocated". Также есть гипотеза что это возможно параметр global_memory_bound в v$pgastat. У кого-нибудь есть более точная инфа по этому поводу?
...
Рейтинг: 0 / 0
05.09.2019, 13:09
    #39857874
Swsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hash join: в памяти или на диске
Никто не мешает использовать всю work area.
Вопрос только в том, сколько ек доступно
...
Рейтинг: 0 / 0
05.09.2019, 14:11
    #39857924
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hash join: в памяти или на диске
_SMM_MAX_SIZE ?
...
Рейтинг: 0 / 0
05.09.2019, 15:56
    #39857997
Valergrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hash join: в памяти или на диске
Вячеслав Любомудров_SMM_MAX_SIZE ?

Вполне возможно. Нашел также инфу что _SMM_MAX_SIZE устанавливается _PGA_MAX_SIZE / 2 , а _PGA_MAX_SIZE это 5% от PGA_AGGREGATE_TARGET.
Что дает нам 2.5% от PGA_AGGREGATE_TARGET. Что на продакшене совпадает с global_memory_bound и с моими наблюдениями.

Но это все достаточно обрывочная инфа, по очень старым версиям. Подумал, что вдруг у кого-то есть доступ к более свежей.
...
Рейтинг: 0 / 0
05.09.2019, 16:06
    #39858009
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hash join: в памяти или на диске
У Льюиса достаточно много инфы на этот вопрос -- распределение памяти workareas
В том числе и про оценки optimal/one-pass

PS. Я специально завышаю PGA_AGGREGATE_TARGET (AMM не использую) где-то раза в 3 от общей памяти. Просто, чтоб не сваливалось в *-pass. Теоретически оно должно провоцировать избыточное использование hash-join, но, вроде, по тестам, оно используется не чаще, а сваливается на диск намного реже
...
Рейтинг: 0 / 0
05.09.2019, 17:07
    #39858063
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hash join: в памяти или на диске
Valergrad_PGA_MAX_SIZE это 5% от PGA_AGGREGATE_TARGET.
noparallel
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Hash join: в памяти или на диске / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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