2012-06-28 84 views
3

我想知道如何停止取消甲骨文的過程?我試圖刪除數百萬的過程中間我殺會議一大桌的和行的,但它開始撤消刪除和一個回合2小時數據庫得到明顯變慢。我不想讓撤銷過程繼續下去。有什麼辦法可以阻止它嗎?如何停止oracle的撤銷過程?

+0

你會想什麼關係呢?如果你殺了這個會話,那麼會話所做的那些沒有提交的改變就必須被回滾。允許對部分完成的陳述進行一些更改將違反基本的ACID原則。 –

+0

我不想要一些表的記錄。我停止了刪除過程,因爲它需要很長時間。撤消過程不需要。 – CGH

回答

2

行,由行刪除過程可以,因爲你已經發現,是極其緩慢的。如果刪除操作全部在單個事務中完成,就像在這裏看起來那樣,它們可能會變得更慢。您可能要考慮以下選項:

  1. 如果你在表中刪除所有行,你可能要考慮使用TRUNCATE TABLE聲明。

  2. 如果您沒有刪除表中的所有行,您應該在刪除了一定數量的行後將您的過程更改爲COMMIT。

與此同時,您將不得不等待該回滾過程完成。

分享和享受。

10

你不能停止回滾事務的過程,因爲這樣做會處於不一致的狀態使數據庫。

當你執行一個長時間運行的刪除過程,甲骨文很可能會決定是否提交或回滾事務之前以書面方式更改的塊到數據文件。如果在執行事務的過程中中斷了進程,磁盤上會有一些更改的塊,內存中有一些更改的塊以及一些未更改的塊。回滾事務是將數據庫恢復到它在你開始執行DELETE聲明之前的狀態的唯一途徑。

0

,當你試圖截斷表,同時它還是刪除,你將看到一個ORA-00054「資源忙與NOWAIT獲取指定或超時過期」