gpt4 book ai didi

sql - COMMIT 和 ROLLBACK 之间的开销有区别吗?

转载 作者:行者123 更新时间:2023-12-01 09:56:30 25 4
gpt4 key购买 nike

我正在开发一个应用程序,它在单个事务中写入一个表,然后读取该表。一旦完成读取,这些更改就不再需要,可以安全地丢弃。但另一方面,如果这些更改已提交,则不会干扰任何其他内容。

简而言之,我可以使用回滚或提交来结束事务,只考虑效率。

那么哪一个会比另一个更快,为什么?

最佳答案

Oracle 生成重做联机日志文件和撤消数据。联机重做日志文件包含 DML/DDL 语句以重做您的事务(在中断的情况下)并在调用回滚语句时撤消您的数据。

Commit 是一个非常快速的运算符,它的时间是恒定的并且不依赖于事务的大小。这是可能的,因为 LGWR 进程在后台事务期间将重做更改写入磁盘。如果您使用异步提交,例如 commit write nowait batch; ,一次提交的时间将几乎等于 0。

回滚取决于事务的大小,因为它需要撤消你在重做日志文件中与事务相关的任何语句,所以事务的时间可能等于事务的回滚时间。

对于短期事务,可能没有区别,但对于中长期事务,您会注意到时间或回滚几乎等于事务的时间。

关于sql - COMMIT 和 ROLLBACK 之间的开销有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25649409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com