我们正在将我们的服务器从 SQL Server 2000 升级到 SQL Server 2005。我们目前使用 jtds 驱动程序。
我很想知道人们对可用的不同 jdbc 驱动程序(特别是最新的 Microsoft 驱动程序)的看法,它们在 SQL Server 2005 中的表现以及您集体经验中的任何其他教训。
我们正在将我们的服务器从 SQL Server 2000 升级到 SQL Server 2005。我们目前使用 jtds 驱动程序。
我很想知道人们对可用的不同 jdbc 驱动程序(特别是最新的 Microsoft 驱动程序)的看法,它们在 SQL Server 2005 中的表现以及您集体经验中的任何其他教训。
我使用了 MS 提供的驱动程序、jtds 驱动程序以及来自 jnetdirect 的驱动程序。
不幸的是,它们都不是完美的,并且都有自己的错误(当然包括微软自己的)。MS 提供的驱动程序当然比其他供应商更支持最新功能,但我必须说,我很少看到驱动程序之间存在显着的性能差异。
我的建议是确保您的应用程序从某处的属性文件中读取驱动程序名称和连接 URL,以便在遇到问题时可以轻松地在驱动程序之间切换。你以后会很高兴的。
我们尝试将 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
语句中运行。稍后当您关闭该语句时,sp_unprepare
将调用该语句。这似乎是 MS 驱动程序的默认行为。这样做的问题是,生成准备好的语句然后关闭它的开销会影响性能。为什么司机不能这样做——
exec getEmployeeManagers @P0=50
我们现在正在使用 jTDS 驱动程序,它似乎表现得很好。