2013-08-23 42 views
0

我搜索了很多,但我无法弄清楚这种奇怪行为的原因。我正在使用windows身份验证的microsoft sql server 2012。我连这样的:创建与Microsoft JDBC驱动程序的连接比使用jTDS快3倍

try { 
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    conn = DriverManager.getConnection("jdbc:sqlserver://MY-PC:1433;databaseName=database;integratedSecurity=true"); 
} catch (Exception e) { 
    System.out.println("failed" + e.getMessage()); 
    e.printStackTrace(); 
} 

此连接aproximately比我使用jtds驱动程序(并添加到的.jar项目库等)快3倍net.sourceforge.jtds.jdbc.Driver和适当的连接字符串(jdbc:jtds:sqlserver://MY-PC:1433/database;instance=SQLEXPRESS)。

有人知道为什么吗?我读了jtds驱动程序比sqldbc驱动程序快得多,但我不知道我做错了什么。

谢谢

+0

你如何测试与一个驱动程序的连接速度比其他驱动程序快?只需一次运行,或者您可以通过多个连接查看平均速度?你能提供你的号码吗? –

回答

1

JTDS司机有很多相关的连接后查询的工作方式的改进。他们的基准没有提到初始连接速度:http://jtds.sourceforge.net/benchTest.html。它们只测量连接已经激活后执行的操作。

我怀疑连接初始化代码比其他驱动程序慢。这就是为什么值得保持连接池的预先建立的连接以获得最大性能。事实上,对于任何车手来说都是如此。

+0

你链接的页面真的很老,所以我不太确定它仍然是真的。 –

+0

该页面包含测试套件的链接,OP仍然可以使用该链接来查看结果是否为真。无论如何,我的观点是,OP需要在连接时不是在连接时,而是在查询/执行时测量驱动程序的性能。 –

相关问题