gpt4 book ai didi

tsql - 存储过程似乎没有解释就挂了

转载 作者:行者123 更新时间:2023-12-03 11:53:32 24 4
gpt4 key购买 nike

我们有一个存储过程,它在 10 分钟前运行良好,然后在您调用它后挂起。

观察:

  • 将代码复制到查询窗口中,1秒内产生查询结果
  • SP 需要 > 2.5 分钟,直到我取消它
  • 事件监视器显示它没有被任何东西阻止,它只是在执行 SELECT。
  • 在 SP 上运行 sp_recompile 没有帮助
  • 删除并重新创建 SP 无济于事
  • 将 LOCK_TIMEOUT 设置为 1 秒没有帮助

  • 还有什么可以发生的?

    更新 :我猜这与参数嗅探有关。我使用 Adam Machanic 的例程来找出挂起的子查询。由于 Martin Smith 的提示,我发现查询计划有问题。我了解到 EXEC ... WITH RECOMPILE , OPTION(RECOMPILE)用于 SP 内的子查询,以及 OPTION (OPTIMIZE FOR (@parameter = 1))为了攻击参数嗅探。我仍然不知道在这个特殊情况下出了什么问题,但我从这场战斗中走出来,经验丰富,装备更好。我知道下次该怎么做。所以这里是要点!

    最佳答案

    在查询运行时运行 Adam Machanic 出色的 sp_WhoIsActive 存储过程。它会给你等待信息——意思是,存储过程正在等待什么——加上执行计划之类的东西:
    http://www.brentozar.com/archive/2010/09/sql-server-dba-scripts-how-to-find-slow-sql-server-queries/
    如果您需要外部命令(如调用存储过程的全文),也可以使用 @get_outer_command = 1 参数。

    关于tsql - 存储过程似乎没有解释就挂了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3944039/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com