从表中删除大记录的最佳方法是什么?我有一个要求,我需要每周从一个表中删除大约 3000 万条记录。这里的问题是,存在 UNDO 保留问题。我打算将我的删除语句分成几块,这样它会有所帮助。
当前声明
DELETE FROM LARGE_TABLE WHERE LARGE_ID ='someValue';
表详情:
1.Table 将有大约 7000 万条记录。
2.删除至少会影响40-45%的表。
3.表不分区。
计划将语句更改为
LOOP
DELETE FROM LARGE_TABLE WHERE LARGE_ID ='someValue' and ROWNUM <'some row number';
COMMIT;
select count(1) INTO nCountValue from LARGE_TABLE WHERELARGE_ID ='someValue' ;
EXIT WHEN nCountValue = 0;
END LOOP;
主要思想是这将减少UNDO保留。
问题,这是最好的做法吗?如果没有,任何指针?请帮忙