すべてのアプリケーションのMSSQLからのドライバーとしてnet.sourceforge.jtds.jdbc.Driverを使用しています。プリペアドステートメントのパフォーマンスに問題があり、sendStringParametersAsUnicode=falseで問題が解決することを学びました。残念ながら、ドライバーに値を受け入れさせることができないようです。Microsoftドライバーcom.microsoft.sqlserver.jdbc.SQLServerDriverにパラメーターを正常に受け入れさせることができます。
jdbc:sqlserver://servername:1433;databaseName=dbname;sendStringParametersAsUnicode=false
persistence.xmlと私のds.xmlで動作します。準備されたステートメントは、22秒で100になります。
ただし、JTDSから同じパフォーマンスの向上を得ることができないようです。それはまだ準備されたステートメントの周りにぶら下がっていて、各反復で数秒かかります。
文字列にいくつかのバリエーションを試しましたが、テスト(Hibernate.connection.urlを使用したpersistence.xml)とJTAおよびds.xmlを使用したサーバーで同じラグが見られました。
jdbc:jtds:sqlserver://server:1433/dbname;sendStringParametersAsUnicode=false
jdbc:jtds:sqlserver://server:1433;sendStringParametersAsUnicode=false;databaseName=dbname
jdbc:jtds:sqlserver://server:1433;sendStringParametersAsUnicode=false;selectMethod=cursor;socketKeepAlive=true;databaseName=dbname
私が読んだすべてのことは、Microsoftドライバーが遅いと述べており、私の会社は過去に問題を抱えていました。できればJTDSを使いたいのですが、プリペアドステートメントが10秒待ちきれません!
誰かアイデアがありましたか?
ありがとう