在执行 DML 时,我有 2 个关于 PL/SQL 脚本性能的问题。当然,这EXECUTE IMMEDIATE
是最慢的,这就是我们拥有forall
、bulk
插入等的原因。我的问题是
- 我必须处理 3 个不同表中的数据。
Table1
(插入数据)、Table2
(更新数据)和Table3
删除数据。所有这些都将基于使用游标获取的值来完成。问题是在这里什么会更有效?- 将这些语句中的每一个放在单独的
Forall
块中?IE
- 将这些语句中的每一个放在单独的
fetch cursor loop forall loop for table 1 forall loop for table 2 forall loop for table 3 end loop
或者
- 一个全局循环并在该循环中执行这些语句,即
fetch cursor loop for i IN array.count loop 3 statements for DML end loop end loop
现在我的第二个问题
- 循环删除记录的有效方法是什么?我通过游标获取要删除的记录的值。现在删除它们的有效方法是什么?
PS:执行我的格式化