2009-08-11 63 views
2

我目前正在構建一個生成引號的應用程序。生成所有報價的總時間約爲10秒,目前提供了令人無法接受的用戶體驗。多線程數據庫訪問(.NET)

我想要做的是多線程每個報價,以便用戶可以看到結果,因爲他們進來。問題是我繼承的應用程序在db上做了很多的總線邏輯。

我想知道的是,如果可以多線程處理每個報價項目,或者這會導致數據庫服務器上的負載過重(例如5個引號= 5個線程或threadqueueeritems)?

回答

0

我唯一擔心的是「生成報價」需要在數據庫上。這可能涉及到寫入數據庫,並且如果您在那裏有很多事務活動,則不同的引用可能會相互競爭,並可能由於阻塞或更糟的死鎖而導致報價串聯。

儘管這是最糟糕的情況,但從問題中給出的缺乏細節出發。

+0

問題是,在數據庫上執行噸的邏輯。我已經啓動了一個項目,以便在連接到數據庫的程序的業務層中獲得它。 目前我只需要進行戰術修復以確保引用不會掛起。 – Rogeclub 2009-08-11 09:31:53

1

在大多數RDBMS,5個併發連接,不應該是一個問題,所以我覺得你可以輕鬆擁有五個線程,利用自身連接每一個

0

數據庫通常被設計來處理多個併發連接。所以沒有什麼可擔心的。

0

數據庫負載應該沒有問題。 但是,您需要檢查死鎖條件的代碼,在開始並行運行時更可能發現死鎖條件。 此外,你的交易界限將不得不被明確定義,但如果這是產生一個報價,我不會想象ReadUncommitted會是一個問題