我在某台机器上运行 SQL 查询时遇到了一个听起来很有趣的问题。这台机器是运行 Windows Server 2003 的虚拟机,上面装有 SQL Server Express 2005。
VM 已从 VMWare Player 映像迁移到正确的 VMWare Workstation 设置。仅在 Player 下运行时(在不同的物理硬件上),它运行良好。
从这台机器上,如果我运行 osql 并连接到它自己的 SQLEXPRESS 实例,查询运行速度会非常慢(10 分钟才能返回并从 select 语句打印 1000 行。)如果我运行 osql 并连接到另一个数据库服务器,查询运行速度相似。
从这台机器上,如果我使用 SSMS 运行查询,它运行良好!同一张表在不到一秒钟的时间内即可打开以供编辑。我在另一台机器上运行了 osql,并连接到出现此问题的 VM。查询与之前完全相同的测试也运行得非常快。
出现此问题的主要原因是,我们在此虚拟机上的 Web 应用程序运行速度与 osql 一样慢,而不是 SSMS 所展现的正常速度。这些 Web 应用程序使用标准 System.Data dll 的 v2.0.50727 进行查询和连接。
有人曾经见过这些症状吗?或者知道如何解决它吗?
答案1
这实际上似乎是在 ODBC 数据源控制面板中打开跟踪时出现的问题。
要检查此设置:
开始 -> 设置 -> 控制面板 -> 管理工具 -> 数据源 (ODBC) 选择跟踪选项卡。确保跟踪已关闭。