我们使用SQL Server 2000来存储测试设备的结果。我们已在Windows XP计算机上安装了测试软件,查询和写入数据库所需的时间没有任何问题。
当我们最近安装了Windows 7计算机时,数据库访问似乎需要20到100倍的时间。我们使用COM接口连接到SQL Server,该接口传递一个包含服务器名称,登录ID和默认数据库的连接字符串:
Provider=SQLOLEDB.1;
Persist Security Info=False;
User ID={Login name};
Initial Catalog={Database name};
Data Source={Server name}
我尝试过使用.net数据库接口,但这并未对速度有任何显着改善。
从Windows 7访问SQL Server数据库的速度是否比Windows XP慢得多,或者有什么方法可以提高代码的性能?
额外细节
我们在Windows 2003服务器上运行SQL Server 2000。这是我们的生产数据库,可存储来自40多个测试站的测试结果。我们计划升级到SQL Server 2005,但这取决于另一个项目,该项目将在大约6个月内完成。客户端PC(访问数据库的PC)是Windows 7。
我使用Windows 7客户端PC测试了在Windows 2003服务器上运行的SQL Server 2005,并发现了类似的结果。
作为一项快速测试,我在Windows 7和Windows XP上运行了一次SELECT查询,Windows 7大约需要30秒,Windows XP需要不到1秒才能完成。 SQL Server 2000和2003都重复了这一点,并且看到了相同的区别。
答案 0 :(得分:4)
答案 1 :(得分:1)
如果您遇到此问题,请参阅打击解决方案:
我们在Win7 VDI上看到的问题可能是由于网络硬件设备与机器连接。如果网络设备不支持TCP / IP扩展,那么性能将会很慢。
禁用TCP的自动调整级别。请按照以下步骤操作: 1)打开命令提示管理员权限(以管理员身份运行) 2)输入“netsh interface tcp set global autotuninglevel = disabled” 3)运行上述命令后重启机器。
有关此命令的其他信息,请访问链接“http://support.microsoft.com/kb/935400”
答案 2 :(得分:0)
这个问题可能是由LLMNR协议引起的,LLMNR协议是IPv4和Linux的新名称解析协议。在Vista,Win7和某些服务器上使用的IPv6。
所以:
或