Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Победить блокировки от триггера  [new]
medoed
Member

Откуда:
Сообщений: 944
Приветствую! Есть такое архитектурное решение - при вставке или update записей в 1-ой таблице вставляются записи или модифицируются записи в других таблицах. Соответственно на первую таблицу накладываются эксклюзивные блокировки, да и те таблицы, которые заполняются (по моему тоже). Насколько мне припоминается
with ur 
в конструкциях триггера писать нельзя. Поменять архитектурное решение глобально тоже нельзя. Так как система не наша и глобально то что оттестировано годами невозможно и запрещено! Версия СУБД 9.7. под windows
Как быть, можно что то прикрутить внутри самого триггера, знаю что костыли, но все же...
17 окт 13, 13:59    [14985370]     Ответить | Цитировать Сообщить модератору
 Re: Победить блокировки от триггера  [new]
medoed
Member

Откуда:
Сообщений: 944
medoed,
Марк, может вы мне поможете ответом, интересно мнение знатоков!
17 окт 13, 16:58    [14986844]     Ответить | Цитировать Сообщить модератору
 Re: Победить блокировки от триггера  [new]
Евгений Хабаров
Member

Откуда: Москва
Сообщений: 773
medoed,

А в чем собственно проблема то состоит?
Сами по себе блокировки - это нормальный процесс работы СУБД.
17 окт 13, 23:45    [14988465]     Ответить | Цитировать Сообщить модератору
 Re: Победить блокировки от триггера  [new]
CawaSPb
Member

Откуда: Питер/Москва/Wroclaw
Сообщений: 1091
medoed,

Обернуть действие в compiled (та, что begin ... end, а не begin atomic ... end) процедуру и дёргать её из триггера.
Не поможет, вооще сделать эту процедуру AUTONOMOUS (только смотреть внимательно, чтобы не самоблокироваться).

Но надо проверять, что будет с производительностью. Compiled процедуры в отличии от кода триггеров (тогда, когда они inlined, в 9.7 появилась возможность делать compiled триггера, как процедуры) реально дёргаются/выполняются. В некоторых случаях может помочь переход от row level к statement level триггерам.
18 окт 13, 10:12    [14995948]     Ответить | Цитировать Сообщить модератору
 Re: Победить блокировки от триггера  [new]
medoed
Member

Откуда:
Сообщений: 944
Евгений Хабаров,
Deadlock -и наступают из-за долгих самоблокировок.
18 окт 13, 12:19    [14997204]     Ответить | Цитировать Сообщить модератору
 Re: Победить блокировки от триггера  [new]
medoed
Member

Откуда:
Сообщений: 944
CawaSPb
medoed,

Обернуть действие в compiled (та, что begin ... end, а не begin atomic ... end) процедуру и дёргать её из триггера.
Не поможет, вооще сделать эту процедуру AUTONOMOUS (только смотреть внимательно, чтобы не самоблокироваться).

Но надо проверять, что будет с производительностью. Compiled процедуры в отличии от кода триггеров (тогда, когда они inlined, в 9.7 появилась возможность делать compiled триггера, как процедуры) реально дёргаются/выполняются. В некоторых случаях может помочь переход от row level к statement level триггерам.

Спасибо, попробуем!
18 окт 13, 12:20    [14997210]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить