【问题标题】:Multithreaded Batch Processing (SELECT and UPDATE) [.NET][DB2]多线程批处理(SELECT 和 UPDATE)[.NET][DB2]
【发布时间】:2012-04-14 05:34:19
【问题描述】:

我有以下要求 -

我必须
1.查询一个表并选择大约 20k 行匹配一些条件。
2.处理这些记录并更改一些字段。
3.用改变的记录更新同一张表。

如何使用多线程来批处理 SELECT、PROCESS 和 UPDATE 记录? 有什么最佳实践吗? 使用的最佳线程数是多少? 有什么替代方法吗?

!要使用的行相互独立

【问题讨论】:

    标签: c# multithreading db2 batch-processing


    【解决方案1】:

    您当然意识到,除非您正在处理的行彼此完全独立,否则并发线程中的处理可能会损害性能。

    对吗?

    无论如何,我最好的建议:

    1) 除非绝对需要,否则不要使用多线程

    2) 即使那样,也不要使用多个线程,除非“批次”是独立的(一个批次中的任何内容都不需要等待另一个持有的锁)

    3) 将查询、处理和更新作为一个批次一起进行

    ...还有,最重要的...

    4) 尽可能使用存储过程:

    http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0007033.htm

    【讨论】:

    • 是的,行是完全独立的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多