|
Странности триггера
|
|||
---|---|---|---|
#18+
СУБД Informix 11.5 (или 11.7). Для организации аудита одной таблицы создали таблицу-архив, которую заполняют 3 триггера на удаление, изменение и добавление. Триггера простейшие: insert прямо в теле триггера. Столкнулись с тем, что при апдейте данной таблицы на таблицу и таблицу-архив вешается блокировка, которая висит до истечения TXTimeout (видимо). Однако она возникает только там, где используется автокоммит. Если транзакция запущена и завершена явно, то блокировка снимается. Однако от автокоммита отказываться нельзя: математика может быть не только наша. Наша программа написана на Delphi (7 или 2010 - пока не знаю), доступ к данным осуществляется через AnyDAC 5 и ODBC. Смущает то, что ранее был установлены триггеры на другую таблицу и там не было подобных спецэффектов. Хотя там логика была немного сложнее, и триггер вызывал хранимую процедуру. Соответственно вопросы: чем вызвано подобное поведение сервера и как с ним бороться? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 20:49 |
|
Странности триггера
|
|||
---|---|---|---|
#18+
bk0010, Проверьте блокировки командами onstat -u onstat -k ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 09:37 |
|
Странности триггера
|
|||
---|---|---|---|
#18+
Может поможет: Change the table locking from page level locking to row level locking. Determine which table columns are being used as filters in your queries and add indexes to the tables involved. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 11:26 |
|
|
start [/forum/topic.php?fid=44&msg=38313767&tid=1607041]: |
0ms |
get settings: |
19ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
27ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
106ms |
get tp. blocked users: |
0ms |
others: | 303ms |
total: | 466ms |
0 / 0 |