|
|
|
Триггер вне транзакции
|
|||
|---|---|---|---|
|
#18+
Как можно вызвать сторед процедуру из триггера чтоб она выполнялась ВСЕ текущей транзакции? Поясню: Проблемма началась по поводу дедлоков и я наткнулся на то, что триггер выполняется весь в одной транзакции и следовательно все сторед процедуры вызванные из него тоже, т.е. блокируют при записи ресурсы до конца всей транзакции. Вопрос далее: как при выполнении триггера инициировать выполнение сторед процедуры, чтоб она выполнялась ВНЕ ТРАНЗАКЦИИ? Просто мне потребуется делать некую процедуру, достаточно навороченную (по кол-ву обращений к таблицам - причем с циклами по курсорам итд), а момент запуска определяется записью извне в таблицу - т.е. по триггеру. Но если оно все в одной транзакции то блокировки все загубят и дедлоков не избежать. Я уже думал может мне задание стартовать (job) но он минимум раз в минуту может стартовать P.S. В таблицы, где висят триггеры пишет ВНЕШНЕЕ приложение, которое я править не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2002, 12:19:33 |
|
||
|
Триггер вне транзакции
|
|||
|---|---|---|---|
|
#18+
job может стартовать по команде sp_start_job ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2002, 12:22:54 |
|
||
|
Триггер вне транзакции
|
|||
|---|---|---|---|
|
#18+
была похожая проблема, когда триггер вызывал процедуру пересчета причем многократно .... и конечно при этом полный набор дедлоков и т.д. очень помогло использование хинта в запросах with (nolock) весьма рекомендую ! (если конечно это тот случай ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2002, 13:22:05 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3373&tid=1818664]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
21ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 341ms |

| 0 / 0 |
