如何停止oracle撤消进程?

CGH*_*CGH 4 sql oracle

我想知道如何停止oracle的撤销过程?我试图删除数百万行的大表,并且在进程中我杀了会话但是它开始撤消删除,并且对于一个两小时的数据库,数据库变得非常慢.我不想让撤消过程继续下去.有什么方法可以阻止它吗?

Jus*_*ave 10

您无法停止回滚事务的过程,因为这样做会使数据库处于不一致状态.

当您执行长时间运行的删除过程时,Oracle可能会在您决定是提交还是回滚事务之前将更改的块写入数据文件.如果在执行事务的过程中中断了该过程,则磁盘上会有一些更改的块,内存中会有一些更改的块,以及一些未更改的块.回滚事务是将数据库返回到开始执行DELETE语句之前的状态的唯一方法.


Bob*_*ica 1

正如您所发现的,逐行删除过程可能非常慢。如果删除全部在单个事务中完成,就像这里的情况一样,它们可能会变得更慢。您可能需要考虑以下选项:

  1. 如果要删除表中的所有行,您可能需要考虑使用TRUNCATE TABLE语句。

  2. 如果您不删除表中的所有行,您可能应该在删除一定数量的行后将过程更改为 COMMIT。

与此同时,您将不得不等待回滚过程完成。

分享并享受。