Oracle中存储过程的并行执行

Posted

技术标签:

【中文标题】Oracle中存储过程的并行执行【英文标题】:Parallel Execution of Stored Procedure in Oracle 【发布时间】:2012-03-05 07:29:56 【问题描述】:

我有一个包包含许多用于填充不同表的存储过程。 该软件包在上传一个 Excel 文件时被调用。 现在假设我在一个包 PKG 中有五个程序 SP1、SP2、SP3、SP4、SP5

    Create or replace  package PKG
declare
    begin 
    sp1;
    sp2;--shd run without waiting for SP1 to get finish..
    sp3;--shd run without waiting for SP2 to get finish..
    sp4;--shd run without waiting for SP3 to get finish..
    sp5;--shd run without waiting for SP4 to get finish..
    end;

现在我想要的是一起执行所有 SP 意味着 SP2 不需要等待 SP1 完成.. 有没有办法像这样“并行执行程序”..

我正在使用 PL/SQL oracle 9i/10g

谢谢

【问题讨论】:

你可以在这里找到答案***.com/questions/576802/… 查看这里williamrobertson.net/feed/2007/10/parallel-plsql-launcher.html 【参考方案1】:

您正在混淆软件包依赖项和执行依赖项... 有许多方法可以让您并行运行一些程序:

您可以打开多个会话并从每个会话中运行一个程序 另一种方法是使用 dbms_job 在后台运行程序

您是否需要在流程结束时通知客户?

如果这还不够,还需要更多信息。

【讨论】:

以上是关于Oracle中存储过程的并行执行的主要内容,如果未能解决你的问题,请参考以下文章

请问oracle怎么执行存储过程

怎么知道 oracle存储过程是不是执行完

oracle中 kill 正在执行的存储过程

oracle 存储过程中多线程执行另一个存储过程

并行执行 oracle PL/SQL [重复]

oracle定时执行存储过程的时间区间问题