He estado utilizando net.sourceforge.jtds.jdbc.Driver como mi controlador de MSSQL para todas mis aplicaciones. Tuve problemas con el rendimiento en una declaración preparada y me enteré de que sendStringParametersAsUnicode = false debería solucionar el problema. Desafortunadamente, parece que no consigo que el conductor acepte el valor. Yo puede conseguir la com.microsoft.sqlserver.jdbc.SQLServerDriver controlador de Microsoft para aceptar el parámetro muy bien:Problemas para obtener el controlador JTDS para aceptar sendStringParametersAsUnicode = false?
jdbc:sqlserver://servername:1433;databaseName=dbname;sendStringParametersAsUnicode=false
obras en un persistence.xml, y en mi ds.xml. Las declaraciones preparadas van rápidamente, 100 en 22 segundos.
Sin embargo, parece que no puedo obtener el mismo impulso de rendimiento de JTDS. Todavía cuelga alrededor de la declaración preparada, tomando varios segundos en cada iteración.
He intentado varias variaciones en la cadena, y veo el mismo retraso en mis pruebas (persistence.xml con Hibernate.connection.url) y Server con JTA y 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
Todo lo que he leído indica que el controlador de Microsoft es más lento y mi empresa tuvo problemas con él en el pasado. Realmente me gustaría utilizar JTDS si es posible, pero no puedo esperar a una declaración preparada durante 10 segundos.
¿Alguien tenía alguna idea?
Gracias
Buenas preguntas Jon. MSSQL 2008. Ambos controladores demoran aproximadamente 9 segundos en la declaración preparada sin la configuración (establecida en verdadero de manera predeterminada) pero el controlador MS mejora a menos de 1 segundo, mientras que el controlador JTDS no parece cambiar en el rendimiento. – javatestcase
Además, la consulta se ejecuta en menos de 1 segundo en el generador de perfiles (mide a 0.00 segundos) – javatestcase
@javatestcase: ¿Puedes mirar los registros en el servidor para determinar cómo se envió la declaración? Esperaría que estuviera disponible en algún lugar de los detalles. –