oracle delete 分批刪除

531968912發表於2016-06-21
在使用delete語句刪除資料時,資料庫是要做日誌記錄的,以便將來可以恢復資料,可是我在刪除上百萬條資料時,十分緩慢甚至當機,請問有沒有什麼好方法?

這個是我平常用來批次刪除資料,每500條資料提交一次。
DECLARE
CNT NUMBER(10):=0;
I NUMBER(10);
BEGIN
SELECT COUNT(*) INTO CNT FROM ep_arrearage_bak WHERE TO_CHAR(DF_DATE,'MM')='01';

FOR I IN 1..TRUNC(CNT/500)+1 LOOP
DELETE FROM ep_arrearage_bak WHERE TO_CHAR(DF_DATE,'MM')='01' AND ROWNUM<=500;
COMMIT;
END LOOP;
END;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2120554/,如需轉載,請註明出處,否則將追究法律責任。

相關文章