tag:blogger.com,1999:blog-1100066510131209878.post6354626024175821786..comments2023-07-13T06:33:44.340+01:00Comments on Из Атланты в Лондон: Commit или rollback?Valikhttp://www.blogger.com/profile/16446746311417734580noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-1100066510131209878.post-47264825532235845162016-12-11T13:36:50.453+00:002016-12-11T13:36:50.453+00:00Честно говоря, не понял зачем открывать транзакцию...Честно говоря, не понял зачем открывать транзакцию если нет изменений.<br />COMMIT приведёт к сохранению данных о транзакции в лог транзакций, ROLLBACK удалит транзакцию из буфера. Вообще, конечно, хороший вопрос. Если не углубляться в детали, то пустой COMMIT будет быстрее ROLLBACK очень тяжелой транзакции, которая съела RAM (если это поддерживается СУБД) и кушает файл подкачки.<br />Мой ответ - если ROLLBACK уместился в кеше в RAM и ничего при этом не писал на диск, то он будет быстрее. Если СУБД не поддерживает кеш транзакций, то очевидно COMMIT будет быстрее.<br />Если говорить о рекомендации, то я бы рекомендовал открывать транзакцию только тогда, когда действительно есть что менять, так как на время транзакции блокируются на запись (а во многих случая и на чтение) записи и таблицы, т.е. другой процесс будет ждать пока первая транзакция не снимет блокировку даже если фактически никаких изменений не вносится.<br />Zhttps://www.blogger.com/profile/16668652922174029274noreply@blogger.com