环境:Oracle 12C
得到一个包含大约 10 列的表,其中包括很少的 clob 和 date 列。这是一个非常繁忙的 ETL 过程表,如下所述 -
平面文件首先加载到表中,然后更新和处理。插入和更新分批进行。数以百万计的记录被插入和更新。
还有一个删除过程,可以根据表中的日期字段删除旧数据。删除过程作为 pl/sql 过程运行,并在循环中从表中删除,仅基于日期字段获取前 n 条记录。
我不希望删除过程干扰常规的插入/更新。对删除进行编码以使其对常规插入/更新过程的影响最小的最佳做法是什么?
我还可以对表进行分区并并行删除,因为每个分区都使用自己的回滚段,但我正在寻找一种更简单的方法来调整删除过程。关于使用特殊回滚段或其他调整技巧的任何建议?