我们在同一台服务器上运行Windows Server 2008 R2(64位),SQL Server 2008 R2(64位)和32位Java应用程序。该应用程序使用Microsoft JDBC驱动程序v3。应用程序可以使用Java 5或Java 6,但都可以使用32位JRE。因此驱动程序可以是类型3或类型4。
以下是我们所看到的:当应用程序运行时,在任何类型的负载下,数据库访问都会变得非常慢。当您卸下负载时,它会没问题。再次加载,它会变慢。
这个问题的复杂部分是:如果我们在数据库中的一个单独但相同的服务器上运行应用程序,它就不会很慢。
因此看起来驱动程序的行为是不同的。当驱动程序和数据库位于同一服务器上(通过本地堆栈到达)时,32位和64位的混合会降低速度。当驱动程序和数据库彼此分离(通过网络到达)时,混合不会导致速度变慢。 有什么想法吗?
我们不希望应用程序和数据库位于同一台服务器上。但我们有销售人员在一台笔记本电脑上进行演示,因此他们需要一起使用。目前,我们看起来将被迫使用VM或类似的隔离。不是销售人员想要的。 从技术上讲,我们很好奇为什么引入网络会产生影响。