SQL Server Profiler

4
当您使用SQL Server分析器时,持续时间和CPU有什么区别?我知道默认情况下两者都显示为毫秒,CPU是运行查询所需的CPU时间,而持续时间更像是查询返回数据所需的时间。
根据我的理解,如果存在任何阻塞等问题,您的CPU时间可能会较少,但持续时间可能会更长。是否有人能够提供更多见解?虽然在BOL中查找微妙的差异很困难。
2个回答

8
CPU时间表示请求/语句(取决于您正在监视的事件)在所有CPU上主动消耗的时间(而不是挂起的时间)。对于单线程查询,这将始终小于或等于经过时间(持续时间=挂钟时间)。但是对于并行查询,CPU时间可能会超过经过时间,因为它将来自多个CPU的CPU时间相加。
通常,在SQL Server中,从SET STATISTICS TIME ON输出到类似于sys.dm_exec_query_stats的DMV(其中CPU时间称为worker_time)或sys.dm_exec_requests(在此DMV中再次命名为cpu_time),都适用经过时间和CPU时间之间的区别。

3

持续时间可以包括等待时间、I/O、数据传输时间等等。CPU只是CPU花费的时间。如果您的查询受限于CPU,则它将比受限于I/O或内存的查询更接近。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接