2

Я использую транзакции sql как контейнеры для APPLOCKS и других механизмов параллелизма, поэтому иногда создаю транзакции на разных уровнях изоляции, которые только считывают данные и не пишут. Я считаю, что в этих ситуациях логически, COMMIT и ROLLBACK имеют одинаковые результаты.Для дешевой/быстрой транзакции с корыстолицей: COMMIT или ROLLBACK?

По соображениям производительности я хотел бы знать, какой из них дешевле/быстрее для сервера? Требуется ли неизбежная бухгалтерия, оптимизированная для случая COMMIT, и дополнительные накладные расходы для ROLLBACK, даже если нет записи? Замки будут выпущены в любом случае.

Если это не имеет значения, то мне не нужно заманивать мой код .NET TransactionScope ненужным scope.Complete(), который может заставить меня стесняться при просмотре кода операции с явно выраженным доступом.

Спасибо!

ответ

4

Поскольку вы ничего не пишете, вы должны пойти на Commit, поскольку он помимо закрытия транзакции также выпускает любые блокировки, которые у вас могут быть. Хотя технически Rollback также будет делать то же самое, но Commit всегда быстрее, чем откат.

+0

Спасибо Sonam. Это тоже мое предположение, но есть ли у вас какая-либо документация или что-то еще, чтобы поддержать это? –

+2

http://dba.stackexchange.com/questions/5233/is-rollback-a-fast-operation – Sonam

Смежные вопросы