0

私はよくグーグルで検索しましたが、この奇妙な動作の理由がわかりません。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と適切な接続文字列 ( )を使用する場合よりも約 3 倍高速ですjdbc:jtds:sqlserver://MY-PC:1433/database;instance=SQLEXPRESS

理由を知っている人はいますか?jtds ドライバーは sqldbc ドライバーよりもはるかに高速であると読みましたが、何が間違っているのかわかりません。

ありがとうございました

4

1 に答える 1

1

jTDS ドライバーには、接続後のクエリの動作に関連する多くの改善点があります。彼らのベンチマークは、初期接続速度について言及していません: http://jtds.sourceforge.net/benchTest.html。接続がアクティブになった後に実行される操作のみを測定します。

接続の初期化コードが他のドライバーよりも遅いと思われます。そのため、最大のパフォーマンスを得るために、事前に作成された接続の接続プールを維持する価値があります。実際、それはどのドライバーにも当てはまります。

于 2013-08-24T07:36:48.347 に答える