MS SQL查询有时会延长500毫秒

时间:2017-09-01 12:14:38

标签: sql-server sql-server-2014 sqlprofiler

我遇到的一些查询有时会比从服务器返回结果要长500毫秒。 确切地说: 正常响应时间为5-6 ms,与服务器的ping时间相同。 SQL事件探查器的正常查询持续时间约为1毫秒。 有时响应时间会上升到500毫秒左右。从不300或400毫秒,总是非常接近500毫秒。 SQL事件探查器报告的实际查询持续时间仍然只有1毫秒左右。 我用Wireshark分析了网络流量,发现当我有500毫秒的响应时间时,我几乎立即收到请求包的ACK(在5-6毫秒的ping时间内)。这必须意味着服务器快速接收请求并且它不是网络相关问题吗?

因此,由于某种原因,SQL服务器收到请求,但是等待,或者执行其他不包含在"持续时间"在执行查询之前,从SQL事件探查器。 它总是在500毫秒左右似乎很奇怪 - 这是否为任何人创造了任何关联? PS: 我也觉得SQL服务器发送ACK如此之快可能有点奇怪?通常我会期望它等待一段时间,事实上当响应时间很短时,就不会发送ACK(只是捎带在响应包上)。

编辑:我在循环中测试它。大多数回复都很快,而且这个延迟很小。延迟通常是分组的。 这是一个生产服务器,我认为它可能与同时发生的其他请求有关,但令我困惑的是它为什么总是500毫秒延迟,以及为什么它不包括在持续时间内分析器中的列。

2 个答案:

答案 0 :(得分:1)

我们遇到了完全相同的问题,在我们的案例中,根本原因是https://kb.vmware.com/s/article/2129176

由于这个问题在Internet上似乎很少见,所以我认为这也可能是您的情况。

答案 1 :(得分:0)

请查看等待统计信息。每当SQL Server执行任何查询时,它都能够检查执行查询中的性能命中。您将不得不查询SQL Server以获取详细信息。它通过sys.dm_os_wait_stats提供,可以连接到其他表或视图以获取更多详细信息。

https://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/

http://downloads.red-gate.com/simpletalk/whitepaper_wait_statistics.pdf

https://www.brentozar.com/sql/wait-stats/