Почему 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 считается конкурентоспособным продуктом/платформой.