SAP HANA - 存储过程的并行执行

问题描述 投票:0回答:3

我想问是否有一种方法可以在不使用作业的情况下从另一个存储过程中或从 xsjs-Service 并行调用具有不同参数(值)的相同存储过程。

根据我的经验,调用是同步运行的,并等待过程的第一次调用返回,然后再调用它第二次。

提前感谢您的时间和帮助。

亲切的问候...

stored-procedures hana
3个回答
1
投票

SQLScript 提供了在

PARALLEL EXECUTION
块中运行语句的选项,如下所示:

DO 
  BEGIN PARALLEL EXECUTION
     INSERT INTO mytab VALUES (1, 2, 3);
     INSERT INTO myothertab VALUES (4, 5, 6);
  END;

请参阅文档了解详细信息此处

但是:正如文档所述,这包括用于执行过程的

CALL
语句。


1
投票

文档链接: https://help.sap.com/viewer/de2486ee947e43e684d39702027f8a94/2.0.02/en-US/8db200a4f585490c81c4930689ec1a5c.html

限制和限制

以下限制适用:

  1. 不允许使用外键或触发器修改表
  2. 不允许在不同的语句中更新同一个表
  3. 只允许对一张表进行并发读取。隐式 SELECT 和 支持 SELCT INTO 标量变量语句。
  4. 调用包含动态 SQL 的过程(例如 EXEC、 EXECUTE IMMEDIATE)在并行块中不支持
  5. 在一个进程中混合只读过程调用和读写过程调用 不允许并行块。

0
投票

文档显示了并行调用多个过程的示例。

create procedure cproc as begin
  begin parallel execution
    call cproc1 ();
    call cproc2 ();
    call cproc3 ();
  end;
end;
call cproc;

额外限制

读写过程中只允许使用以下语句,这些语句可以在并行块中调用:

  • 列出项目 数据标记语言
  • 列出项目 命令式逻辑
  • 列出项目 自主交易
  • 列出项目 隐式 SELECT 和 SELECT INTO 标量变量
© www.soinside.com 2019 - 2024. All rights reserved.