SQL Server 探查器
Posted
技术标签:
【中文标题】SQL Server 探查器【英文标题】:SQL Server Profiler 【发布时间】:2011-08-29 19:18:48 【问题描述】:当您使用 时 持续时间和 CPU 有什么区别? 我知道默认情况下两者都显示为 MilliSeconds 和 CPU 是运行查询所花费的 CPU 时间,而持续时间更像是查询返回任何数据所花费的时间。
根据我的理解,如果有任何阻塞等,您的 CPU 时间可能会更少,但持续时间可能会更长。
谁能提供更多见解?通过 BOL 进行争夺,但很难找到细微的差异。
【问题讨论】:
【参考方案1】:CPU 时间表示所有 CPU 上的请求/语句(取决于您正在监视的事件)主动消耗(未挂起)的时间。对于单线程查询,这将始终小于或等于经过的时间(持续时间 = 挂钟时间)。但是对于并行查询,CPU 时间可能超过经过的时间,因为它会将多个 CPU 的 CPU 时间相加。
一般来说,已用时间和 CPU 时间之间的这种区别适用于 SQL Server 中的任何地方,从 SET STATISTICS TIME ON
输出到像 sys.dm_exec_query_stats
(其中 CPU 时间称为 worker_time
)或 sys.dm_exec_requests
(又称为 cpu_time
)这样的 DMV在这个 DMV 中)。
【讨论】:
【参考方案2】:持续时间可以包括等待时间、I/O、数据传输时间等。CPU 只是 CPU 花费的时间。如果您的查询受 CPU 限制,它将比受 I/O 或内存限制的查询更接近。
【讨论】:
以上是关于SQL Server 探查器的主要内容,如果未能解决你的问题,请参考以下文章
是否有 PostgreSQL 等效的 SQL Server 探查器?
python测试开发django-117.bootstrapTable结合Paginator分页器查显示表格