【发布时间】:2010-09-22 15:47:13
【问题描述】:
SQL Server 超时(尤其是 SELECT 查询)是否记录在 ERRORLOG 文件中?
背景是一个客户,其网站偶尔会出现“请求超时”消息,假设超时是由数据库超时引起的。相关的 ERRORLOG 中没有超时错误。
【问题讨论】:
标签: sql-server timeout error-log
SQL Server 超时(尤其是 SELECT 查询)是否记录在 ERRORLOG 文件中?
背景是一个客户,其网站偶尔会出现“请求超时”消息,假设超时是由数据库超时引起的。相关的 ERRORLOG 中没有超时错误。
【问题讨论】:
标签: sql-server timeout error-log
没有。您将需要使用 SQL Profiler。带有 Lock Timeout 事件和 Deadlock Graph 事件的标准跟踪应该可以做到这一点。
除了硬件(例如足够的 RAM 和快速驱动器,以及在适当的 RAID 配置上适当放置数据和日志文件)之外,大多数超时都是由于您的工作负载没有足够“好”的索引集引起的。
您是否有定期安排索引维护计划?
【讨论】:
SQL Server 超时由客户端启动作为注意事件,并且不会记录在 SQL Server 错误日志中。
您可以使用以下方法监控注意事件:
【讨论】:
您还可以使用在超时和死锁事件时引发的事件通知。触发后,您可以将其写入表格或给自己发送电子邮件。
我在这里展示了一般技术:
Immediate deadlock notifications without changing existing code ?
2008 年 7 月 18 日
这样您就不必运行 Profiler;这会影响性能。
【讨论】: