db2luw中的多个线程

时间:2015-01-13 13:40:53

标签: db2

我对Db2很新。我有一个问题,开发了几个将在db2数据库上执行某些操作的程序。我的问题是如何在db2服务器上同时创建多个线程。我的意思是我有一个包含70,000个表的数据库,每个表有1000多条记录。我有一个程序,将更新所有这70,000个表。因此,时间消耗是主要因素。我想将我的更新语句分成10个线程,每个线程将更新7000个表。我想同时运行所有10个线程。

有人可以让我知道实现这一目标的方式。 DB2 c Express on windows。

2 个答案:

答案 0 :(得分:0)

DB2中没有任何内容可用于创建多个线程。

DB2的企业级版本将在需要时自动处理跨多个核心的单个语句。但这不是你所要求的。

我不相信任何基于SQL的RDBMS允许创建自己的线程的SP。 SQL的重点在于它是一个更高级别的抽象,你无法访问这些类型的细节。

您需要使用支持线程的语言编写外部应用程序,并同时打开与DB的10个连接。但取决于您正在进行的更新的具体细节以及您拥有的硬件。你可能会发现10个连接太多了。

答案 1 :(得分:0)

要详细说明Charles的正确答案,客户端应用程序可以通过打开与数据库的多个连接来并行化其DML工作负载。您可以自己编写这样的程序,但许多ETL实用程序提供的组件可以实现类似于您所描述的并行工作流程。除了简化编程之外,使用ETL工具定义和管理多线程数据库更新的另一个优点是内置异常处理,如果其中任何一个连接遇到错误,则可以更轻松地回滚所有相关连接。