【发布时间】:2016-10-27 15:39:58
【问题描述】:
我们正在使用 IBM 的 ADO.NET 实现来访问 AS400 上的 DB2 数据库。有一个 Db2Connection 对象采用连接字符串 - 一切都很标准(有很多示例)并且一切正常。
我们的问题是我们必须进行大规模迁移,并且迁移工作需要对数据库进行相当多的查询。我们的迁移可以拆分为多个并行运行的任务 - 不幸的是,性能增益不是线性的(双倍线程数
所以我的问题是:对于 Db2Connection 池的活动连接(打开的阅读器)数量是否有上限?在连接字符串中设置 MaxSize 没有影响,那么服务器是否有任何限制?或者还有什么可以限制我们的查询?
【问题讨论】:
-
不清楚为什么您期望数据库性能会随着并发连接数线性增长。如果您的并行任务真正独立,请考虑更改默认连接隔离级别。
-
看看服务器端,
WRKACTJOB JOB(QZDASOINIT)命令应该会显示为您的请求提供服务的作业。您应该看到多个。你看到什么状态?锁定等待 (LCKW) 表示存在问题。可能是@mustaccio 建议的隔离级别。
标签: c# ado.net db2 ibm-midrange