|
|
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
Есть база Oracle 12.1.0.2.0 В базе создано несколько таблиц, в которые идёт интенсивная вставка данных (совокупно около 3 млрд. строк в сутки) В каждой таблице создано NUMBER-поле, которое по триггеру заполняется из одного sequence (1 sequence на несколько таблиц). В топе ожиданий видны "library cache: mutex X" на запросах получения значений из sequence (select <sequence_name>.nextval from dual). CACHE в sequence установлен (100000). Подскажите, можно ли каким-то образом уменьшить ожидания "library cache: mutex X" при частом обращении к sequence, или это ожидаемая ситуация и как-то повлиять на это не получится? Пытался применить DBMS_SHARED_POOL.KEEP к sequence - результатов не принесло (ожидания не уменьшились). DBMS_SHARED_POOL.MARKHOT к sequence применить не удалось - object type not supported. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 12:26 |
|
||
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
Kompromiss, А если без триггера? Напрямую в операторе INSERT прописать <sequence_name>.nextval? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 12:48 |
|
||
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
efendi, А можете пояснить логику? Почему вы полагаете, что trigger может быть причиной ожиданий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 13:27 |
|
||
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
Kompromiss, Сколько сессий одновременно заполняют таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 13:45 |
|
||
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
XMLer, В общей сложности 300 (разное количество для разных таблиц). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 14:25 |
|
||
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
Kompromissefendi, А можете пояснить логику? Почему вы полагаете, что trigger может быть причиной ожиданий? c триггером и без, однозначно разница есть (в случае если триггер нужен только для автономера) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 15:33 |
|
||
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
efendiKompromiss, А если без триггера? Напрямую в операторе INSERT прописать <sequence_name>.nextval? Ну вот, навскидку. Правда там пример на JAVA, но сути не меняет. Загружаем данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 15:50 |
|
||
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
Kompromissпо триггеруKompromiss12.1.0.2.0вы можете просто default для поля сделать типа Код: plsql 1. https://docs.oracle.com/database/121/NEWFT/chapter12101.htm#FEATURENO09966 Kompromissзаполняется из одного sequence (1 sequence на несколько таблицдля решения проблемы вам надо разные сиквенсы использовать для разных таблиц. KompromissВ общей сложности 300они хоть долгие? не подключаются/отключаются после каждой вставки нескольких строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 17:00 |
|
||
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
efendiНу вот, навскидку. Правда там пример на JAVA, но сути не меняет. Загружаем данные Спасибо, почитал про переключение контекстов SQL и PL/SQL. Перенос <seq>.nextval из триггера в insert полностью решил проблему, ожиданий "library cache: mutex X" в топе больше нет. xtenderвы можете просто default для поля сделать типа Код: plsql 1. Согласен, можно и так. xtenderдля решения проблемы вам надо разные сиквенсы использовать для разных таблиц. Нет, задача состояла в использовании одного сиквенса для всех таблиц. xtenderони хоть долгие? не подключаются/отключаются после каждой вставки нескольких строк? Каждая вставляет в среднем по 10.000 строк, после чего завершает работу. Всем спасибо, проблема решена, тему можно закрывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 09:19 |
|
||
|
Oracle 12c, sequence, library cache: mutex X
|
|||
|---|---|---|---|
|
#18+
KompromissПодскажите, можно ли каким-то образом уменьшить ожидания "library cache: mutex X" при частом обращении к sequence А почему вы решили, что именно в этом причина ваших проблем? Посмотрите, что пишут тут Troubleshooting 'library cache: mutex X' Waits. (Doc ID 1357946.1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 11:09 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=123&tid=1884346]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 387ms |

| 0 / 0 |
