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

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
24.01.2021, 15:20
    #40038414
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert append parallel(64) ждёт enq: HV contention. как ускорить?
кит северных морей
недокументированный _INSERT_ENABLE_HWM_BROKERED=FALSE
"недокументируемость" решается SRом с запросом офиц. workaround'а, заодно можете попросить сделать баг публичным или хотя бы видимым для вас.
кит северных морей
не рассматривается
почему?
кит северных морей
да и не факт, что это всё вообще поможет.
почему?
...
Рейтинг: 0 / 0
24.01.2021, 15:24
    #40038415
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert append parallel(64) ждёт enq: HV contention. как ускорить?
есть еще отключенный по умолчанию 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
24.01.2021, 16:13
    #40038427
кит северных морей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert append parallel(64) ждёт enq: HV contention. как ускорить?
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
24.01.2021, 16:26
    #40038428
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert append parallel(64) ждёт enq: HV contention. как ускорить?
кит северных морей
но в MOS его не вижу. непубличный?
да, они в последние годы практически не делают баги публичными, каждый раз просить надо, чтобы сделали публичным.
...
Рейтинг: 0 / 0
24.01.2021, 16:39
    #40038430
Alexander Anokhin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert append parallel(64) ждёт enq: HV contention. как ускорить?
кит северных морей

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

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

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

Мы подобные объемы делали таким образом:
Код: 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
25.01.2021, 06:09
    #40038535
кит северных морей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert append parallel(64) ждёт enq: HV contention. как ускорить?
Alexander Anokhin
Этот фикс не был сделан.
ШТОШ
буду открывать SR. посмотрим, что скажут.

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

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

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

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


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