【问题标题】:Simple SQL Server query always time out简单的 SQL Server 查询总是超时
【发布时间】:2017-12-14 06:35:39
【问题描述】:

我们的存储过程已经完美运行了 10 多年。几天前它开始超时。我从 SQL Management Studio 的查询控制台运行它,它超时。我重新启动服务器,然后它在 1 秒内运行...

【问题讨论】:

  • 你真的有问题吗?
  • 听起来查询的计划很糟糕。
  • 我猜您的计划已损坏...下次超时清除缓存并检查
  • @SeanLange 暗指的是,“你希望别人如何用你提供的东西来回答这个问题?”。任何试图回答这个问题的尝试都是从提出大量问题开始,或者在黑暗中对可能发生的一系列原因开枪。该问题可能与此查询完全无关......即另一个查询或操作可能是真正的问题,您只是注意到副作用。就像我在说“我的车已经运行了 10 年,但现在它有时会跳动,并且将其关闭和打开可以解决一段时间”。
  • 是的,@scsimon 非常成功。我们不知道发生了什么。我想到了两种快速的可能性。这可能是一个糟糕的执行计划或阻塞。其中任何一个都可以通过重新启动来解决。我的猜测是这是一个糟糕的执行计划。假设您需要知道为什么该计划不好。这可能是由于很多事情造成的,最有可能的是,您已经达到了数据量的“临界点”,导致计划不太理想。但由于没有细节,所以无法肯定地说。甚至更不可能帮助解决问题。

标签: sql sql-server performance timeout sqlperformance


【解决方案1】:

您应该考虑一下这 10 年来您的系统发生的变化,也许您添加了一些后台服务,这些服务在您运行查询时正在执行一些繁重的 sql 更新/插入。

我认为,如果您在临时服务器或本地计算机(通常具有不同的 sql 操作负载)上运行查询,您可以对查询的性能有一个清晰的认识,观察执行查询所需的时间,不时尝试一下。

如果您的查询在登台服务器上的执行时间是恒定的,那么您的查询不是问题的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-26
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2012-01-01
    相关资源
    最近更新 更多