【问题标题】:SQL Server - Stored procedure execution time issueSQL Server - 存储过程执行时间问题
【发布时间】:2011-09-26 10:41:25
【问题描述】:

最近在我们的生产服务器上 - 我们开始面临问题 - 过去只需 5 分钟的查询现在需要超过 30 分钟才能完成。

有时它们会恢复正常。我检查了数据量没有任何变化,但查询运行有时慢有时快。

如何诊断这些类型的问题。

问候

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    听起来像parameter sniffing(几个 SO 链接)

    检查的快速方法是运行sp_updatestats,看看它是否能解决问题。这将使所有查询计划无效并确认(或不确认)参数嗅探

    如需了解更多信息,请阅读 Erland Sommarskog 的 "Slow in the Application, Fast in SSMS?"

    【讨论】:

      【解决方案2】:

      您是否看到,在 SQL Management Studio 中为您的查询使用估计的执行计划分解查询。在运行您的查询时?它将给出执行查询所花费的时间百分比。

      【讨论】:

        【解决方案3】:

        在您的过程中的每个步骤之后添加以下行,它将帮助您找出哪个部分花费了多少时间。所以你可以找出原因。它一直在帮助我

        打印转换(varchar(50),getdate(),109)

        附:执行您的过程后,请查看消息选项卡,它会以毫秒为单位显示日期时间

        【讨论】:

        • 过程是近 5000 行代码 - 查看执行计划很困难..而且它只是一个带有很多连接的 SELECT 命令 - 将这个打印转换放在哪里......
        • 一方面我不明白你说它有 5000 行 n 然后你说它只是一个选择语句。在select语句之前会有一些数据处理......我猜是这样
        猜你喜欢
        • 2021-05-22
        • 1970-01-01
        • 2021-06-14
        • 1970-01-01
        • 2012-04-27
        • 1970-01-01
        • 2011-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多