2009-08-11 66 views
2

我目前正在构建一个生成引号的应用程序。生成所有报价的总时间约为10秒,目前提供了令人无法接受的用户体验。多线程数据库访问(.NET)

我想要做的是多线程每个报价,以便用户可以看到结果,因为他们进来。问题是我继承的应用程序在db上做了很多的总线逻辑。

我想知道的是,如果可以多线程处理每个报价项目,或者这会导致数据库服务器上的负载过重(例如5个引号= 5个线程或threadqueueeritems)?

回答

0

我唯一担心的是“生成报价”需要在数据库上。这可能涉及到写入数据库,并且如果您在那里有很多事务活动,则不同的引用可能会相互竞争,并可能由于阻塞或更糟的死锁而导致报价串联。

尽管这是最糟糕的情况,但从问题中给出的缺乏细节出发。

+0

问题是,在数据库上执行吨的逻辑。我已经启动了一个项目,以便在连接到数据库的程序的业务层中获得它。 目前我只需要进行战术修复以确保引用不会挂起。 – Rogeclub 2009-08-11 09:31:53

1

在大多数RDBMS,5个并发连接,不应该是一个问题,所以我觉得你可以轻松拥有五个线程,利用自身连接每一个

0

数据库通常被设计来处理多个并发连接。所以没有什么可担心的。

0

数据库负载应该没有问题。 但是,您需要检查死锁条件的代码,在开始并行运行时更可能发现死锁条件。 此外,你的交易界限将不得不被明确定义,但如果这是产生一个报价,我不会想象ReadUncommitted会是一个问题