我们有一个在Java和.NET中运行的应用程序(使用IKVM编译的.NET)。它从SQL Server数据库中提取数据以构建报告。
它正在构建500个报告,因此每个报告都可以在一个单独的线程中构建。多个线程应该在更少的日历时间内完成所有作业,直到线程之间的颠簸消耗太多时间。
在4核系统上,Java版本按预期工作。大胜8线程,16线程小赢。
在同一系统上,2个线程的总时间最快。甚至不是4,而是2.相同的计算机,相同的数据库。从根本上说,除了一个使用JDBC和使用ADO.NET之外,相同的代码。
Sql Server ADO.NET连接器中是否有某些内容使其对使用它的多个线程产生敌意?
或者我还应该关注其他什么?