2013-04-25 75 views
0

我的應用程序只觸發Oracle DB上的SELECT查詢。我有多個模式,我有一個線程可以從每個模式讀取。每個線程創建自己的連接來連接到數據庫。應用程序中的最佳線程數應該是多少?

當我運行三個測試時,我觀察到性能最適合8-10個線程,然後在單核機器上降級。有誰知道是否有任何理由?

+0

你有多少個磁盤後端數據庫方案? – 2013-04-25 07:55:49

+0

只有一個磁盤在後端 – Jack 2013-04-25 09:29:58

回答

2

對此沒有一般規則或簡單的數學公式。通常最好的是每個核心有一個線程,但這取決於。要告訴的唯一方法就是測試你的應用程序。在你的情況下,在一臺核心機器上有8-10個線程是不好的,這些線程將花更多的時間來處理彼此,而不是做實際的工作。

+3

如果線程被綁定,在這裏有幾個是有意義的。 – 2013-04-25 08:05:39

+0

@AlexandreC。不能同意更多。 – Eugene 2013-04-25 08:06:40

+0

是的。我將查詢的結果寫入文件。當我使用一個線程需要10秒。 2個線程8秒,5個線程4秒,8個線程3秒。之後再次開始增加。 – Jack 2013-04-25 09:24:45

相關問題