我在服务器上遇到奇怪的超时错误以进行简单的查询(即使没有其他服务器负载也会花费太长时间)。
使用扩展事件或 SQL事件探查器,我监控了一个查询:
SELECT 'Testing Connection...
出于某种原因查询:
选择'测试连接...'
15秒完成。
但是花了15秒才完成?它只花了78ms的CPU时间。在另外14.2秒内又是什么?
SQL Profiler(和扩展事件)正在衡量的持续时间是什么?
是时间到最后一个字节发送给客户端了吗?如果是这样,它如何知道最后一个字节何时被传送到客户端?
如果确实包含网络时间,那么有时这是一个相当慢的局域网。
从SQL Server 2000联机丛书(最后一次记录Profiler):
SQL事件探查器数据列
SQL事件探查器允许您在创建模板时选择数据列。这些数据列表示在跟踪运行时要返回的信息。 SQL事件探查器中显示的数据可以按事件发生的顺序显示,也可以基于一个或多个数据列组合显示在组中。
下表介绍了SQL事件探查器数据列,以及默认选择的列。
| Data Column | Column Number | Description | |-------------|---------------|-------------------------------------------------------| | Duration | 13 | Amount of time (in milliseconds) taken by the event. |