插入和删除比较的回滚时间

时间:2013-03-01 11:59:00

标签: oracle oracle11g rdbms

关于Oracle RDBMS,哪个回滚速度更快?

Rollback1:插入1000000条记录,然后回滚

Rollback2:删除1000000条记录,然后回滚

2 个答案:

答案 0 :(得分:0)

您可以使用以下方法查找查询完成百分比:

SELECT SESSION_ID, percent_complete, estimated_completion_time
FROM SYS.DM_EXEC_REUQESTS

答案 1 :(得分:-1)

要回答这个问题,我们应该知道Oracle如何在内部处理插入和删除操作。我知道当你插入一些东西时,它会插入内存,然后当你提交时。 Oracle写入磁盘。

对于删除操作,我发现:http://www.dba-oracle.com/t_oracle_soft_logical_deletes.htm因此它通常会在逻辑上删除,并且可能会删除实时。

现在我们应该讨论回滚,当你回滚一个插入时,你清除内存中的行并清除你的重做日志。听起来很简单。当您回滚删除时(如果Oracle实时删除了行),它应该去重做日志,读取,然后将删除的行插回数据库。

因此,如果我是正确且合乎逻辑的,回滚删除操作应该比回滚插入花费更多时间。

此外,如果您要删除条件,删除过程应该比单独插入花费更多时间。

P.S。谢谢你提出的问题,这很有趣,让我对Oracle内部进行了一些研究。