Mal*_*ulo 3 sql oracle oracle11g
我正在开发一个应用程序,它在一个事务中写入一个表然后读取该表.一旦完成读取,就不再需要这些更改,可以安全地丢弃.但另一方面,如果提交的话,更改不会干扰任何其他内容.
简而言之,我可以使用rollback或commit来结束事务,只需考虑效率.
那么哪一个会比另一个更快,为什么呢?
Oracle生成重做在线日志文件和撤消数据.联机重做日志文件包含DML/DDL语句以重做事务(如果发生停电),并在调用回滚语句时撤消数据.
Commit是一个非常快的运算符,它的时间是常量,并不依赖于事务的大小.这是可能的,因为LGWR进程在后台事务期间将重做更改写入光盘.如果使用异步提交(例如,使用)commit write nowait batch;,则提交时间将几乎等于0.
回滚取决于事务的大小,因为它需要撤消与事务相关的重做日志文件中的任何语句,因此事务的时间可能等于事务回滚的时间.
对于短期交易,可能没有差异,但对于中期和长期交易,您会注意到时间或回滚几乎等于交易时间.
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |