AUTONOMOUS_TRANSACTION - PullRequest
       13

AUTONOMOUS_TRANSACTION

6 голосов
/ 26 августа 2009

Я думал об использовании AUTONOMOUS_TRANSACTION Pragma для некоторой регистрации в пакетном процессе. У кого-нибудь есть опыт с этим? Если так, то любые плюсы и минусы будут оценены.

Ответы [ 2 ]

17 голосов
/ 26 августа 2009

IMO Автономные транзакции особенно адаптированы к ведению журналов: они запускаются независимо от основного сеанса, что означает, что вы можете записывать в таблицу изменения или изменения, не затрагивая основную транзакцию.

Они также добавляют небольшие накладные расходы: если вы запускаете большие операторы и добавляете автономную транзакцию между каждым оператором, затраты производительности будут незначительными.

Существует также побочный эффект, который может вас заинтересовать: поскольку автономные транзакции находятся в независимых сеансах от вызывающей транзакции, вы можете следить за ходом основного процесса во время его выполнения. Вам не нужно ждать завершения основной транзакции: вы можете запросить таблицу регистрации, так как она заполнена автономными транзакциями.

3 голосов
/ 27 августа 2009

Очевидно, что любое ведение журнала в автономной транзакции останется в базе данных, даже если основная транзакция откатывается. Для ведения журнала это, вероятно, то, что вам нужно, но важно помнить, что запись в журнале, говорящая «вставлена ​​строка X в таблицу Y», не означает, что эта вставка действительно была зафиксирована.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...