Я использовал net.sourceforge.jtds.jdbc.Driver в качестве драйвера от MSSQL для всех моих приложений. У меня были проблемы с производительностью в подготовленном операторе, и я узнал, что sendStringParametersAsUnicode = false должен решить проблему. К сожалению, я не могу заставить драйвер принять это значение. Я МОГУ заставить драйвер Microsoft com.microsoft.sqlserver.jdbc.SQLServerDriver нормально принять параметр:
jdbc:sqlserver://servername:1433;databaseName=dbname;sendStringParametersAsUnicode=false
работает в persistence.xml и в моем ds.xml. Готовые заявления идут быстро, 100 за 22 секунды.
Однако я не могу получить такой же прирост производительности от JTDS. Он по-прежнему зависает вокруг подготовленного оператора, занимая несколько секунд на каждой итерации.
Я пробовал несколько вариантов строки и видел такое же отставание в своих тестах (persistence.xml с Hibernate.connection.url) и Server с 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 секунд!
У кого-нибудь были идеи?
Спасибо