2013-04-25 125 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

相关问题