多线程数据库访问(.NET)

时间:2009-08-11 09:05:31

标签: .net sql database multithreading

我目前正在构建一个生成引号的应用。生成所有引号的总时间约为10秒,目前提供了令人无法接受的用户体验。

我想要做的是多线程每个引用,以便用户可以看到结果。问题是我继承的应用程序在数据库上执行了很多总线逻辑。

我想知道的是,如果可以多线程化每个引用项,或者这会导致数据库服务器上的负载过多(例如5个引号= 5个线程,还是threadqueueworkeritems)?

4 个答案:

答案 0 :(得分:1)

在大多数RDBMS上,5个并发连接应该不是问题,所以我认为你可以轻松拥有五个线程,每个线程都使用自己的连接

答案 1 :(得分:0)

数据库通常用于处理多个并发连接。所以无需担心。

答案 2 :(得分:0)

我唯一担心的是在数据库中需要“生成引用”。这可能涉及写入数据库,如果你在那里有很多交易活动,不同的报价可能会相互竞争,最终会因为阻塞或更糟糕的死锁而引发串联报价。

这是最糟糕的情况,但是问题中给出的细节很少。

答案 3 :(得分:0)

数据库加载应该没有问题。 但是,您需要检查代码是否存在死锁条件,当您开始并行运行时,您更有可能找到这些条件。 此外,您的事务边界将必须很好地定义,但如果这是生成引用,我不会想象ReadUncommitted将是一个问题