【问题标题】:Slow running query on my machine only仅在我的机器上运行缓慢的查询
【发布时间】:2012-10-25 15:29:06
【问题描述】:

我正在对 Microsoft SQL Server 2005 运行一个简单的 select * from table 查询。该表有大约 41000 条带有 PK 聚集索引的记录,并且我正在使用 Windows 集成身份验证。

  • 当我使用 Microsoft SQL Server Management Studio 在我的机器上运行它时,查询在大约 1 小时 45 分钟内完成。我尝试从网格切换到文本输出,使用SQLCMD 从命令行运行它还尝试在查询之前执行DBCC USEROPTIONSDBCC DROPCLEANBUFFERSDBCC FREEPROCCACHE... 没有任何改变查询的速度。

  • 当我使用我的凭据从同事的工作站运行它时,查询很快就会正常完成。如果同事使用他们的凭据在我的工作站上运行查询,则查询会非常慢,如上所述。

我想不出如何解决这个问题。不知何故,这个问题似乎与我的机器有关,但我无法理解它。还请考虑以下几点:

  • 我检查并确保未在我的机器上启用 ODBC 跟踪(Win7-64 位)。我已经使用 Microsoft Management Studio 2008 R2 安装了 SQL Server 客户端工具,这就是我用来查询数据库的工具。
  • 我也是用VS2010运行同样的sql查询,结果是一样的。
  • 我在不同的服务器上针对同一表/数据库的副本运行查询,但问题仍然存在。
  • 当我运行 select count(*) from table - 查询正常完成,没有延迟。
  • 当我使用 SQL Server Profiler 运行跟踪时,查询只是一个长时间运行的查询 - 我看不到任何异常情况。
  • 当我在 MS SQL Server Management Studio 中使用文本输出运行查询时,我可以看到在大约 85 条记录的初始缓冲区之后,后续记录一次以大约 400 条记录批量到达。例如 85 -> 407 -> 804 -> 1210 -> 1605 -> 1897 -> 2161 -> 2753 -> 3051 -> 3342 -> 3676 -> 4002 等。与同事工作站相比,您可以在其中查看记录数据到达时被绘制为连续流!???
  • 我还比较了我的机器上的实际查询执行计划和查询正常运行的另一台机器 - 它们看起来是相同的。

谁能理解这里可能出了什么问题?为什么从我的机器上运行它很慢,但它从另一个工作站正常执行?... 有任何建议的操作步骤来解决此问题吗?

提前感谢大家!

【问题讨论】:

  • 那些执行计划正在运行不同的查询。
  • 您发布的两个执行计划似乎在查询两个不同的表。第一个是 tblQuoteSummary,第二个是 tblQuoteLayer。
  • 是的,我确实为我的遗漏道歉 - 我确实发布了错误的屏幕截图。我删除了屏幕截图,因为它们是相同的,不会增加价值或任何其他信息。同时我发现了问题 - 请参阅下面的答案:)

标签: sql-server sql-server-2005 sql-server-2008-r2


【解决方案1】:

我发现了问题 - 这是网络适配器驱动程序更新。一旦我回滚驱动程序,查询就会按预期执行,没有延迟!

我花了很长时间才确定这一点。作为记录,我的网卡是“Intel(R) 82579LM Gigabit Network Connection”,流氓网络驱动程序来自 Windows 更新。 我的工作站是 HP 8200 Elite。驱动程序回滚后,我从 HP 支持站点下载安装了最新的网络驱动程序,这似乎是解决方案 - 到目前为止,我没有遇到 SQL 查询运行缓慢的问题 :)

【讨论】:

    【解决方案2】:

    您是否已硬连线到 LAN?无线上网?检查您的网络延迟,您提供的一切似乎都正常。 ping 你的数据库服务器来检查这个。

    接下来我要检查的是确保当时服务器或数据库上没有运行任何其他内容。防病毒软件,测试,任何可能减慢数据库速度的东西。另外,您是否通过虚拟框运行此查询?从本地服务器和远程服务器获取执行计划并并排比较它们。他们应该是一样的。如果不是,你就知道有问题。

    还要检查每个连接执行查询时使用的用户 SET 选项。这可以产生影响。如果这些都不是问题,我的下一个猜测是硬件或配置故障

    【讨论】:

    • 硬线连接到局域网;同样的查询在大约两周前运行良好,因为没有发生硬件配置更改......
    • 接下来我要检查的是确保当时服务器或数据库上没有其他任何东西在运行。防病毒软件,测试,任何可能减慢数据库速度的东西。另外,您是否通过虚拟框运行此查询?从本地服务器和远程服务器获取执行计划并并排比较它们。他们应该是一样的。如果不是,你就知道有问题。还要检查每个连接执行查询时使用的用户 SET 选项。这可以产生影响。如果这些都不是问题,我猜是硬件或配置故障。
    • 我已经检查了以上所有它是我正在使用的物理框,查询计划相同;这不可能是硬件问题,因为它对数据库中的其他表运行正常;我正在调查这是否与最近的 SQL Server Data Tools (SSDT) 安装有关 - 我已将其卸载但问题仍然存在;看起来像是软件问题,但我想不出还有什么可以尝试的......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2019-03-22
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多