0

こんな手順があります。

create or replace
Procedure PROCEDURE_NAME
begin

Insert Instructions

Insert Instructions

Insert Instructions

Some Instructions

Some Instructions

Some Instructions


end;

上記は、競合することなく並列に実行できる命令ブロックです。Oracle Procedure でそれらを並列に実行するように定義するにはどうすればよいですか?

それらに対してさまざまな手順を作成できますが、この手順の最小限の変更を探して、SQLで命令を並列に呼び出すことは可能だと思います。

4

2 に答える 2

5

複数のプロシージャを並行して実行するには、DBMS_Scheduler チェーンを使用します。これらにより、他の手順の成功または失敗に基づいて一連の手順を実行できます。

Oracle の SQL Developer には、それを支援するためのグラフィカル インターフェイスがありますが、私は常に手動でコーディングしてきました。

ドキュメントに役立つ例があります。

于 2013-05-07T10:14:47.000 に答える
1

並列実行については、必ず Oracle Docsを読む必要があります。

しかし、要約すると、初心者のために:

並行して実行するステートメントを指定できます (ヒント付き):

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

テーブルを並行して読み取るように設定できます。

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

関数は、定義時に戻り句の後に PARALLEL_ENABLE を追加して、並列クエリによって発行された場合、並列で実行できます。

私の知る限り、プロシージャを並行して実行するように指定することはできません(そして、私にとってはあまり意味がありません)。

于 2013-05-07T09:39:51.767 に答える