0

我有这样的程序。

create or replace
Procedure PROCEDURE_NAME
begin

Insert Instructions

Insert Instructions

Insert Instructions

Some Instructions

Some Instructions

Some Instructions


end;

以上是可以并行执行而不会产生任何冲突的指令块。如何在 Oracle 过程中定义以并行执行它们?

我可以为它们制作不同的程序,但在这个程序中寻找最小的修改,我相信在 SQL 中调用指令并行是可能的。

4

2 回答 2

5

可以通过 DBMS_Scheduler 链并行执行多个过程。这些允许基于其他过程的成功或失败来执行一系列过程。

Oracle 的 SQL Developer 有一个图形界面来帮助解决这个问题,尽管我总是自己手动编写它们。

文档中有一个有用的示例。

于 2013-05-07T10:14:47.000 回答
1

您绝对应该阅读有关并行执行的 Oracle 文档

但总结一下,对于初学者:

您可以指定要并行运行的语句(带有提示):

select /*+parallel(e 4)*/ *
from emp e;

您可以设置要并行读取的表:

ALTER TABLE emp PARALLEL 4;
--a select on it will run in parallel;

如果由并行查询发出函数,则可以并行运行,在定义它时在返回子句后添加 PARALLEL_ENABLE。

不能将程序指定为并行运行,AFAIK(这对我来说没有多大意义)。

于 2013-05-07T09:39:51.767 回答