powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / insert append parallel(64) ждёт enq: HV contention. как ускорить?
10 сообщений из 10, страница 1 из 1
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40038328
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добрый день.

12.1.0.2

есть загрузка данных примерно такого вида.

Код: plsql
1.
2.
3.
insert /*+append parallel(64) no_gather_optimizer_statistics*/ 
into oracle_table partition (p_20210101)
select * from external_table



объем данных - 10-20 миллиардов строк, 100-150гб. вставка HYBRID TSM/HWMB долго ждет enq: HV contention.

насколько я понимаю, проблема в brokered hwm. думаю, как сделать быстрее. предположим, что итоговый размер сегмента меня не волнует.

документированного способа выключить его, чтобы попробовать чистый temp segment merge, даже для теста, нет.

недокументированный _INSERT_ENABLE_HWM_BROKERED=FALSE не рассматривается. да и не факт, что это всё вообще поможет.

писать TSM самому, складывая каждый файл внешней таблицы в свой сегмент и потом склеивая их... ну такое.

снижение DOP, допустим, до 32, убирает ожидание, но очевидно не ускоряет вставку.

какие еще есть варианты?
...
Рейтинг: 0 / 0
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40038414
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
кит северных морей
недокументированный _INSERT_ENABLE_HWM_BROKERED=FALSE
"недокументируемость" решается SRом с запросом офиц. workaround'а, заодно можете попросить сделать баг публичным или хотя бы видимым для вас.
кит северных морей
не рассматривается
почему?
кит северных морей
да и не факт, что это всё вообще поможет.
почему?
...
Рейтинг: 0 / 0
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40038415
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
есть еще отключенный по умолчанию fix_control 8589278, но вам он врядли поможет:
Код: plsql
1.
2.
3.
    BUGNO VALUE SQL_FEATURE          DESCRIPTION                                               OPTIMIZER_ 
--------- ----- -------------------- --------------------------------------------------------- ---------- 
  8589278     0 QKSFM_DML_8589278    disable hwm brokering for insert if distribution is PKEY
...
Рейтинг: 0 / 0
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40038427
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender
кит северных морей
не рассматривается
почему?

в 12.1 значение параметра нельзя изменить на уровне сессии. только alter system. в ближайшие полгода планируем переезд на 19с; если там появится alter session - тогда, возможно, рассмотрим.

пока писал, нагуглил на asktom упоминание Bug 9110808 : _INSERT_ENABLE_HWM_BROKERED CANNOT BE ALTERED AT SESSION LEVEL двухлетней давности, но в MOS его не вижу. непубличный?

xtender
кит северных морей
да и не факт, что это всё вообще поможет.
почему?
ну я пока не убедился в этом лично
у нас достаточно бюрократизированная среда, протащить такой alter system даже на dev-базу - вопрос непростой.
...
Рейтинг: 0 / 0
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40038428
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
кит северных морей
но в MOS его не вижу. непубличный?
да, они в последние годы практически не делают баги публичными, каждый раз просить надо, чтобы сделали публичным.
...
Рейтинг: 0 / 0
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40038430
Alexander Anokhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кит северных морей

пока писал, нагуглил на asktom упоминание Bug 9110808 : _INSERT_ENABLE_HWM_BROKERED CANNOT BE ALTERED AT SESSION LEVEL двухлетней давности, но в MOS его не вижу. непубличный?

Этот фикс не был сделан.
...
Рейтинг: 0 / 0
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40038509
flexgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кит северных морей,

кит северных морейкакие еще есть варианты?

Мы подобные объемы делали таким образом:
Код: plsql
1.
create table <stg_table_name> as select /*+ parallel (<n>)*/ * from <ext_table_name>



Потом
Код: plsql
1.
alter table <table_name> exchange partition <partition_name> with table <stg_table_name> 



Я обратил внимание что у тебя параллельная вставка при непараллельном чтении.

Так пробовал?:
Код: plsql
1.
2.
3.
4.
5.
alter session enable parallel dml;

insert /*+append parallel(32) no_gather_optimizer_statistics*/ 
into oracle_table partition (p_20210101)
select /*+ parallel (32)*/ * from external_table;
...
Рейтинг: 0 / 0
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40038535
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Anokhin
Этот фикс не был сделан.
ШТОШ
буду открывать SR. посмотрим, что скажут.

flexgen
параллельная вставка при непараллельном чтении
отсутствие хинта не означает автоматически однопоточное чтение. там всё читается в параллели.
...
Рейтинг: 0 / 0
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40038730
Timur Akhmadeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выделять место руками перед вставкой пробовали?
Сколько времени тратится на ожидания и на весь insert (wall clock)? В какое время хотите уложиться?
...
Рейтинг: 0 / 0
insert append parallel(64) ждёт enq: HV contention. как ускорить?
    #40039247
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я рановато дергаться начал, простите.

wall clock был около получаса, на enq: HV уходило где-то треть, и если их убрать, то результат бы в принципе устроил. но когда я сел выковыривать этот кусок из джоба, чтобы написать суррогатный test case для SR, выяснилось, что проблема воспроизводится трудно, на одной конкретной PDB (где в контейнере есть еще много всего) при недостатке ресурсов (кроме HV ждал еще resmgr: cpu quantum).

в большинстве же случаев ожидание в пределах 5-7% даже без предварительного выделения места.

пока продолжу наблюдение.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / insert append parallel(64) ждёт enq: HV contention. как ускорить?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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