2008-12-04 7 views
3

Мы обновляем наши серверы до SQL Server 2005 с SQL Server 2000. В настоящее время мы используем драйверы jtds.JDBC java drivers sql server 2005

Мне интересно узнать, какие мнения людей имеют о разных доступных драйверах jdbc (в частности, о последнем драйвере Microsoft), о том, как они работают с SQL Server 2005 и любых других уроках из вашего коллективного опыта.

+0

Разве это не SQL Server 2008? Ну, по крайней мере, вы не используете MS Access! – fiddlesticks 2008-12-04 17:13:42

ответ

2

Я использовал драйвер MS, драйвер jtds, а также драйвер из jnetdirect.

К сожалению, ни одно из них не является совершенным, и все они имеют свои собственные ошибки (в том числе, конечно, и Microsoft). Разумеется, у MS-драйверов есть поддержка новейших функций перед другими производителями, но я должен сказать, что я редко видел значительные различия в производительности между драйверами.

Мой совет будет заключаться в том, чтобы убедиться, что ваше приложение читает имя драйвера и URL-адрес соединения из файла свойств где-нибудь, чтобы вы могли легко переключаться между драйверами, если у вас возникают проблемы с выбором, который вы выберете. Вы будете рады, что сделали это позже.

0

Мы пытались использовать Microsoft JDBC Driver 2.0 с SQL Server 2005. Проблема мы нарваться было - при вызове хранимой процедуры, драйвер генерировал следующие операторы SQL -

declare @P1 int 
set @P1=1 
exec sp_prepexec @P1 output, N'@P0 int', N'EXEC getEmployeeManagers @P0', 50 
select @P1 

Так хранимые процедуры запуска в операциях sp_prepexec. И позже, когда вы закроете заявление, вызывается. По-видимому, это поведение по умолчанию для драйвера MS. Проблема заключается в том, что накладные расходы для создания подготовленного оператора, а затем для его закрытия имеют влияние производительности. Почему не может водитель просто сделать это -

exec getEmployeeManagers @P0=50 

Теперь мы используем драйвер jTDS и это, кажется, выполняет большой.