gpt4 book ai didi

multithreading - 在 Oracle 过程中实现多线程

转载 作者:行者123 更新时间:2023-12-04 04:29:44 26 4
gpt4 key购买 nike

我正在研究 Oracle 10gR2。

这是我的问题 -

我有一个程序,我们称之为 *proc_parent* (在包内)应该调用另一个过程,我们称之为 *用户创建* .我要打电话 *用户创建* 在一个循环中,它从表中读取一些列 - 这些列值作为参数传递给 *用户创建* 程序。

代码是这样的:

FOR i IN (SELECT    community_id,
password,
username
FROM customer
WHERE community_id IS NOT NULL
AND created_by = 'SRC_GLOB'
)
LOOP
user_creation (i.community_id,i.password,i.username);
END LOOP;

COMMIT;

user_Creation 过程正在为某些业务逻辑调用 Web 服务,然后根据响应更新表。

我需要找到一种可以在这里使用多线程的方法,以便我可以运行此过程的多个实例来加快速度。我知道我可以使用 *DBMS_SCHEDULER* 可能 *DBMS_ALERT* 但我无法弄清楚如何在循环中使用它们。

有人可以指导我朝着正确的方向前进吗?

谢谢,
安库尔

最佳答案

您可以做的是同时提交大量作业。见 Example 28-2 Creating a Set of Lightweight Jobs in a Single Transaction

这会在 pl/sql 表中填充您要在一个 tx 中同时提交的所有作业。一旦它们被提交(启用),它们就会开始运行,数量是系统可以处理的,或者是资源管理器计划允许的数量。

轻量级作业的开销非常......最小/轻。

关于multithreading - 在 Oracle 过程中实现多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8213415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com