使用Microsoft的JDBC驱动程序创建连接比使用jTDS快3倍

时间:2013-08-23 20:44:12

标签: java jdbc jtds

我google了很多但我无法弄清楚这种奇怪行为的原因。我正在使用带有Windows身份验证的microsoft sql server 2012。我这样连接:

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();
}

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

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

谢谢

1 个答案:

答案 0 :(得分:1)

jTDS驱动程序在进行连接后与查询的工作方式有很多相关的改进。他们的基准测试没有提到初始连接速度:http://jtds.sourceforge.net/benchTest.html。它们仅测量连接已处于活动状态后执行的操作。

我怀疑连接初始化代码比其他驱动程序慢。这就是为什么值得保留预先创建的连接的连接池以获得最大性能的原因。事实上,任何司机都是如此。