2011-10-21 29 views
14

estamos comparando JTDS y Microsoft SQL Server para una aplicación Java EE que se ejecuta en JBoss y estamos encontrando que JTDS es de 30% a 50% más rápido, comparando la aplicación en un escenario de alta concurrencia y manteniendo exactamente el mismo HW/SW pero cambiando solo el controlador en la configuración del origen de datos.¿Por qué es JTDS más rápido que el controlador JDBC de Microsoft?

Mientras que hemos visto una gran cantidad de opciones favorables hacia jTDS y por lo que estamos pensando ir a por ello todavía estoy curioso:

  • Por qué es el conductor jTDS mucho más rápido?
  • ¿Por qué Microsoft nunca actualizó su controlador para ser tan rápido como JTDS?

La comparación se realizó utilizando la última versión de JDBC 3.0 y la última versión de JTDS y el uso de SQL Server 2008 ejecutándose en una instalación de 16 núcleos con SAN dedicada.

+0

Votado para cerrar porque nadie aquí podría saber la respuesta a esa pregunta (a menos que trabajaran para Microsoft y estuvieran en el equipo que desarrolló el controlador de Microsoft) –

+2

Microsoft lanzó una nueva versión el mes pasado. http://blogs.msdn.com/b/jdbcteam/archive/2012/03/06/microsoft-jdbc-driver-4-0-for-sql-server-released.aspx. Publiqué una pregunta en su blog sobre este tema. Esperemos escuchar de ellos. –

+0

Gracias por su respuesta. Estamos continuamente buscando formas de mejorar el rendimiento y la escalabilidad del controlador JDBC de Microsoft para SQL Server. ¿Desea proporcionarnos más detalles a través de la página de contacto de nuestro blog? http://blogs.msdn.com/b/jdbcteam/contact.aspx Además, ¿ha comparado nuestro último controlador - Microsoft JDBC Driver 4.0 para SQL Server usando SQL Server 2012 con jTDS? –

Respuesta

5

He hecho comparaciones de rendimiento similares, con resultados similares.

Existen muchas razones posibles para las diferencias de rendimiento. Algunos de ellos son visibles en el T-SQL generado por el controlador, que se puede ver con el Analizador de SQL. Otros aspectos son más sutiles, como la gestión de conexión y cómo se implementa el protocolo subyacente (TDS).

No puedo decir con certeza por qué MS nunca ha actualizado su controlador, pero sospecho que parte de esto se debe a que Java se considera un producto/plataforma competitivo.

Cuestiones relacionadas