Почему JTDS быстрее, чем драйвер JDBC от Microsoft?

мы сравниваем JTDS и Microsoft SQL Server для приложения Java EE, работающего на JBoss, и мы обнаруживаем, что JTDS работает с 30% до 50% быстрее, сравнивая приложение в сценарии с высокой совпадением и сохраняя точно такой же HW/SW, но изменяя только драйвер в конфигурации источника данных.

В то время как мы видели много благоприятных вариантов для JTDS, и поэтому мы собираемся пойти на это, мне все еще интересно:

  • Почему намного быстрее работает драйвер JTDS?
  • Почему Microsoft никогда не обновляет свой драйвер, чтобы быть быстрым, как JTDS?

Сравнение было выполнено с использованием последней версии JDBC 3.0 и последней версии JTDS и с использованием SQL Server 2008, работающего на 16-ядерной установке с выделенной SAN.

Ответы

Ответ 1

Я сделал аналогичные сопоставления производительности с аналогичными результатами.

Существует много потенциальных причин различий в производительности. Некоторые из них видны в T-SQL, сгенерированном драйвером, который вы можете видеть с помощью SQL Profiler. Другие аспекты более тонкие, такие как управление соединениями и как реализуется базовый протокол (TDS).

Я не могу точно сказать, почему MS никогда не обновлял свой драйвер, но я подозреваю, что его часть связана с тем, что Java считается конкурентоспособным продуктом/платформой.