powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle 12c, sequence, library cache: mutex X
10 сообщений из 10, страница 1 из 1
Oracle 12c, sequence, library cache: mutex X
    #39608960
Kompromiss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть база 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.
...
Рейтинг: 0 / 0
Oracle 12c, sequence, library cache: mutex X
    #39608974
efendi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kompromiss,

А если без триггера? Напрямую в операторе INSERT прописать <sequence_name>.nextval?
...
Рейтинг: 0 / 0
Oracle 12c, sequence, library cache: mutex X
    #39609009
Kompromiss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
efendi,

А можете пояснить логику? Почему вы полагаете, что trigger может быть причиной ожиданий?
...
Рейтинг: 0 / 0
Oracle 12c, sequence, library cache: mutex X
    #39609029
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kompromiss,
Сколько сессий одновременно заполняют таблицы?
...
Рейтинг: 0 / 0
Oracle 12c, sequence, library cache: mutex X
    #39609066
Kompromiss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XMLer,

В общей сложности 300 (разное количество для разных таблиц).
...
Рейтинг: 0 / 0
Oracle 12c, sequence, library cache: mutex X
    #39609125
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kompromissefendi,

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

c триггером и без, однозначно разница есть (в случае если триггер нужен только для автономера)

.....
stax
...
Рейтинг: 0 / 0
Oracle 12c, sequence, library cache: mutex X
    #39609143
efendi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
efendiKompromiss,

А если без триггера? Напрямую в операторе INSERT прописать <sequence_name>.nextval?

Ну вот, навскидку. Правда там пример на JAVA, но сути не меняет.

Загружаем данные
...
Рейтинг: 0 / 0
Oracle 12c, sequence, library cache: mutex X
    #39609217
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Kompromissпо триггеруKompromiss12.1.0.2.0вы можете просто default для поля сделать типа
Код: plsql
1.
create table tseq(id number default seq.nextval,...

https://docs.oracle.com/database/121/NEWFT/chapter12101.htm#FEATURENO09966

Kompromissзаполняется из одного sequence (1 sequence на несколько таблицдля решения проблемы вам надо разные сиквенсы использовать для разных таблиц.
KompromissВ общей сложности 300они хоть долгие? не подключаются/отключаются после каждой вставки нескольких строк?
...
Рейтинг: 0 / 0
Oracle 12c, sequence, library cache: mutex X
    #39609512
Kompromiss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
efendiНу вот, навскидку. Правда там пример на JAVA, но сути не меняет.
Загружаем данные
Спасибо, почитал про переключение контекстов SQL и PL/SQL.
Перенос <seq>.nextval из триггера в insert полностью решил проблему, ожиданий "library cache: mutex X" в топе больше нет.

xtenderвы можете просто default для поля сделать типа
Код: plsql
1.
create table tseq(id number default seq.nextval,...


Согласен, можно и так.

xtenderдля решения проблемы вам надо разные сиквенсы использовать для разных таблиц.

Нет, задача состояла в использовании одного сиквенса для всех таблиц.

xtenderони хоть долгие? не подключаются/отключаются после каждой вставки нескольких строк?

Каждая вставляет в среднем по 10.000 строк, после чего завершает работу.

Всем спасибо, проблема решена, тему можно закрывать.
...
Рейтинг: 0 / 0
Oracle 12c, sequence, library cache: mutex X
    #39609561
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KompromissПодскажите, можно ли каким-то образом уменьшить ожидания "library cache: mutex X" при частом обращении к sequence А почему вы решили, что именно в этом причина ваших проблем?

Посмотрите, что пишут тут
Troubleshooting 'library cache: mutex X' Waits. (Doc ID 1357946.1)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle 12c, sequence, library cache: mutex X
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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