powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / enq: TX - contention
12 сообщений из 37, страница 2 из 2
enq: TX - contention
    #39956278
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender
Кобанчег
Что даст полезного сия информация для тюнинга merge что без нее непонятно?
а что тебе уже без нее понятно?
Здравый смысл подсказывает, что если в обычных условиях всё работает ОК, то в конкретном примере должна быть деталь, которая порождает проблему и эту деталь 99.9% можно определить без callstack.

Например, можно еще проверить компрессию таблицы.
Был ли concurrent сбор статистики или DDL типа alter table, index rebuild, etc.
Можно посмотреть другие детали из ash (sql_exec_id, sql_exec_start, что косвенно может указывать на рестарт, но вряд ли это тот случай).

На версии 11.2 мы сталкивались с тем, что при параллельный DML в subpartitioned table Oracle накладывал TM enqueue in exclusive mode на все подсекции в результате чего либо всё вставало колом либо вообще сыпались дедлоки. Это опять же не этот случай, но намекает что может быть полнейший абсурд и неплохо бы еще раз понаблюдать за блокировками во время выполнения (в ash то попадает только active).

Если есть база для экспериментов, то неплохо бы воспроизвести, потом выполнить без параллельности и еще без sub-partitions. Так путем проб и анализа нащупывается подход который работает приемлемо.
Еще раз: определяется фактор из-за которого проблема с производительностью. Дальнейший вопрос уже как это решать - code fix, patch (или вообще миграция на новую версию), или банально некоторая манипуляция DBA.

Александру был задан вопрос что понять смысл альтернативного подхода. Вероятно в его практике обычно невозможно не то, что провести ряд экспериментов но даже выполнить повторный прогон и вместо анализа различных подходов он будет смотреть на ядрёные функции. Потом вероятно поднимет SR и будет ждать пока починят. Каждому своё.

Можно пойти дальше - дизассемблер в руки и ковырять кишки. Этот парень может много про это рассказать.
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956287
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кобанчег,

1. Ну зачем же гадать? BGAAG!
2. Александр посоветовал очень здравый правильный системный траблшутинг, безо всяких гаданий.
3. У Александра огромный опыт и знания в траблшутинге(в том числе работы в самом оракл), так что не надо измышлизмов, что он сделает и в какой ситуации. Если ты что-то не понял в его словах, то не надо сразу оголтело наезжать - просто спроси, и, скорее всего, с его долготерпением он постарается доходчиво объяснить.
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956298
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender,

Саян, а может тебе хватит выступать адвокатом людей и указывать что кому делать?
Ты не заметил как после твоих нравоучений ( 22122317 ) неожиданно пропал -2-, санитар леса ты наш.

Я просто спросил как ему поможет знание callstack в решении этой конкретной проблемы. Про наезды это твои домыслы.

Может ты дашь хотя бы одну ссылку где лично ты описываешь как тебе помог callstack, я с удовольствием почитаю.
Только не надо давать ссылки на описание в духе "наука ради науки", я тоже не раз ковырял сие.
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956314
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кобанчег,

offtop
Кобанчег
Саян, а может тебе хватит выступать адвокатом людей и указывать что кому делать?
сразу же, как только все твои посты станут вежливыми, без негативной окраски.
Кобанчег
Ты не заметил как после твоих нравоучений ( 22122317 ) неожиданно пропал -2-, санитар леса ты наш.
а как тебе понравится если на твое
Кобанчег
Действовать как правило лучше скальпелем чем кувалдой.
Код: plsql
1.
alter session set events 'wait_event["enq: TX - row lock contention"] callstack()';

тебя назовут лжецом? Я уже несколько раз говорил - не надо порождать негатив.
Кобанчег
Я просто спросил как ему поможет знание callstack в решении этой конкретной проблемы. Про наезды это твои домыслы.
перечитай свои последние сообщения - насколько они вежливы? Что за инсинуации насчет того, кто что может и что, кто и как сделает?

Хочешь продолжить этот абсолютно оффтопный разговор - напиши мне на почту. Эта тема не место для такого рода оффтопа.

Кобанчег
Может ты дашь хотя бы одну ссылку где лично ты описываешь как тебе помог callstack, я с удовольствием почитаю.
Что опять за странные наезды? Зачем тебе это и почему именно от меня?
зы. http://orasql.org/2017/12/13/collection-iterator-pickler-fetch-pipelined-vs-simple-table-functions/


По сабжу:
Кобанчег
Здравый смысл подсказывает, что если в обычных условиях всё работает ОК
каких "обычных"?
Кобанчег
99.9% можно определить без callstack
Что конкретно ты предлагаешь адекватно, технически? Без гаданий, типа "проверить компрессию таблицы"(про которую, Александр уже дал ноту), "Был ли concurrent сбор статистики или DDL типа alter table, index rebuild, etc"
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956327
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender
а как тебе понравится если на твое
Кобанчег
Действовать как правило лучше скальпелем чем кувалдой.
Код: plsql
1.
alter session set events 'wait_event["enq: TX - row lock contention"] callstack()';

тебя назовут лжецом?
Мне будет абсолютно индифферентно. Чья-то характеристика моего высказываения не влияет на его истинность или ложность.
Конструкция как раз была приведена чтобы адресат обосновал необходимость более общей конструкции, если в ней есть необходимость для его целей (которые мне были не до конца ясны).
Факт кривой копипасты тоже абсолютно очевиден. У меня нет особого ЧСВ и это меня никак не ранит.
xtender
Кобанчег
Может ты дашь хотя бы одну ссылку где лично ты описываешь как тебе помог callstack, я с удовольствием почитаю.
Что опять за странные наезды? Зачем тебе это и почему именно от меня?
зы. http://orasql.org/2017/12/13/collection-iterator-pickler-fetch-pipelined-vs-simple-table-functions/
Мда... если в том, что у тебя просят одну ссылку видеть наезд это уже просто без комментариев.

Спасибо за предложение на писать на почту, на этом, пожалуй, можно закруглится.
Я думаю твоя позиция про очень здравый правильный системный траблшутинг TX - contention в случае merge понятна, но мне было интересно мнение господина Анохина.
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956336
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кобанчег
Может ты дашь хотя бы одну ссылку где лично ты описываешь как тебе помог callstack, я с удовольствием почитаю.
Только не надо давать ссылки на описание в духе "наука ради науки", я тоже не раз ковырял сие.
Зачем тебе это именно от меня?

И
xtender
Что конкретно ты предлагаешь адекватно, технически? Без гаданий, типа "проверить компрессию таблицы"(про которую, Александр уже дал ноту), "Был ли concurrent сбор статистики или DDL типа alter table, index rebuild, etc"
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956365
Alexander Anokhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кобанчег
но мне было интересно мнение господина Анохина.
Санёк, ну ты в итоге то понял мнение господина Анохина, или как? А то у тебя то "enq: TX - row lock contention" вместо "enq: TX - contention", то ссылки странные, ты вообще с нами?

Кобанчег

Я думаю твоя позиция про очень здравый правильный системный траблшутинг TX - contention

Да, в этом случае именно hang analyze dump, или лучше system state dump, это системный и правильный траблшутинг TX - contention. ASH тоже полезно, особенно когда надо понять как события развивались, но в данном случае правильный дамп полезнее, поскольку "enq: TX - contention" это достаточно общий wait event, их около 4-х разных, если не ошибаюсь, и первым делом стоит понять какой именно это "enq: TX - contention" из всего их многообразия, вместе с цепочкой ожиданий, кто в каком месте ждёт, и кто финальный блокер и что он делает.

Кобанчег
Может ты дашь хотя бы одну ссылку где лично ты описываешь как тебе помог callstack, я с удовольствием почитаю.
тысячи их, хотя бы документ с предыдущей страницы
https://support.oracle.com/epmos/faces/DocumentDisplay?id=2488646.1 Slow extent allocation for partitioned compressed table causing slowdown with enq: tx - contention and l1 validation wait events
When it happens, most of PX slaves wait for "TX - contention" and stack for blockers (PX slaves as well) contains ktsp_bump_hwm, which means we are trying to extend the segment to get new space and are on CPU
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956374
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Anokhin
Кобанчег
но мне было интересно мнение господина Анохина.
Санёк, ну ты в итоге то понял мнение господина Анохина, или как?
Санёк, спасибо что находишь возможность мне ответить!
Мне по прежнему не совсем понятно какие дальнейшие шаги при таком подходе после получения стека.
Искать ядрёные функции на металинке или еще чего.
Alexander Anokhin
Да, в этом случае именно hang analyze dump, или лучше system state dump, это системный и правильный траблшутинг TX - contention
Так для чего по фен-шую делать hanganalyze в этом случае?
Для просмотра полного дерева блокировок или callstack или всё сразу?
И главное в какой момент если
maria_1992
"выполняется" больше суток
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956376
Alexander Anokhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

Эта была цитата из закрытого документа, её стоит удалить. Тут приоткрыто
https://support.oracle.com/knowledge/Oracle Database Products/2488646_1.html Slow extent allocation for partitioned compressed table causing slowdown with enq: tx - contention and l1 validation wait events
When it happens, most of PX slaves wait for "TX - contention" and stack for blockers (PX slaves as well) contains ktsp_bump_hwm, which means we are trying to extend the segment to get new space and are on CPU
остальное в https://support.oracle.com/epmos/faces/DocumentDisplay?id=2488646.1
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956686
beginner2020
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maria_1992
Всех приветствую.
Прошу помощи:)

1. Есть партиционированная табличка T (схема партиционирования range(date_col) interval(numtodsinterval (1, 'day')) subpartition by list col2).
2. Есть процедура для заливки данных в эту таблицу(T).
3. В процедуре есть такой вот фрагмент:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
execute immediate 'alter session enable parallel dml';

 for x in list_of_partitions_in_T.first .. list_of_partitions_in_T.last
 loop
    dbms_session.set_context(x....) -- значение из list_of_partitions_in_T
    ...
    --формируем merge такого вида:
    l_sql := 'merge /*+parallel(24)*/
                     into (select * 
                              from T
                            where T.date_col = sys_context(....))
                  using (select ...
                              from some_other_table
                            where some_other_table.date_col = sys_context(....))
                  ......
                 '
    execute immediate l_sql;
    commit;
 end loop;

execute immediate 'alter session disable parallel dml';



В общем итог этого всего - процедура "выполняется" больше суток и enq: TX - contention составляет 94% активности.
Подскажите, пожалуйста, куда смотреть(dynamic performance views, может статьи какие-то) и как узнать, что кроется под этим enq: TX - contention, знаю что enq: TX разные бывают, а что конкретно в этом случае - не понятно.


А для каких целей может понадобиться именно такой попартиционный мерж в цикле, почему просто не использовать мерж в таблицу без циклов и отдельных партиций?
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956970
beginner2020
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beginner2020

А для каких целей может понадобиться именно такой попартиционный мерж в цикле, почему просто не использовать мерж в таблицу без циклов и отдельных партиций?


Вопрос адресован ко всем у кого есть мысли на этот счет:)
...
Рейтинг: 0 / 0
enq: TX - contention
    #39956975
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beginner2020
beginner2020

А для каких целей может понадобиться именно такой попартиционный мерж в цикле, почему просто не использовать мерж в таблицу без циклов и отдельных партиций?

Вопрос адресован ко всем у кого есть мысли на этот счет:)

Как вариант - локализация технологических операций по загрузке хранилища (разделы, не участвующие в текущей фазе операции загрузки, доступны для обычных операций без ограничений).
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / enq: TX - contention
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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