【问题标题】:Are SQL Server timeouts logged?是否记录 SQL Server 超时?
【发布时间】:2010-09-22 15:47:13
【问题描述】:

SQL Server 超时(尤其是 SELECT 查询)是否记录在 ERRORLOG 文件中?

背景是一个客户,其网站偶尔会出现“请求超时”消息,假设超时是由数据库超时引起的。相关的 ERRORLOG 中没有超时错误。

【问题讨论】:

    标签: sql-server timeout error-log


    【解决方案1】:

    没有。您将需要使用 SQL Profiler。带有 Lock Timeout 事件和 Deadlock Graph 事件的标准跟踪应该可以做到这一点。

    除了硬件(例如足够的 RAM 和快速驱动器,以及在适当的 RAID 配置上适当放置数据和日志文件)之外,大多数超时都是由于您的工作负载没有足够“好”的索引集引起的。

    您是否有定期安排索引维护计划?

    【讨论】:

    • 谢谢您,我已经设置了跟踪...
    • 正如我所说,如果让探查器跟踪运行一段时间,可能会导致性能问题。当然取决于您的系统负载。
    • 正确设置的跟踪应大致消耗少于 5% 的 CPU 和资源。这篇文章将向您展示如何:stackoverflow.com/questions/257906/…
    【解决方案2】:

    SQL Server 超时由客户端启动作为注意事件,并且不会记录在 SQL Server 错误日志中。

    您可以使用以下方法监控注意事件:

    【讨论】:

      【解决方案3】:

      您还可以使用在超时和死锁事件时引发的事件通知。触发后,您可以将其写入表格或给自己发送电子邮件。

      我在这里展示了一般技术:

      Immediate deadlock notifications without changing existing code ?

      2008 年 7 月 18 日

      这样您就不必运行 Profiler;这会影响性能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-28
        • 1970-01-01
        • 2012-12-02
        • 1970-01-01
        • 1970-01-01
        • 2012-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多