如何判断 SQL 中的哪个进程构成了活动监视器中报告的处理器时间

如何判断 SQL 中的哪个进程构成了活动监视器中报告的处理器时间

在 SQL 活动监视器中,我看到处理器时间滚动图中的 CPU 使用率始终保持在 35% 到 40% 之间。如何判断 SQL 中的哪些进程导致了该 CPU 使用率?

答案1

下载并安装 sp_whoisactive存储过程由亚当·马卡尼克。它是用于临时监控 SQL Server 实例的最佳工具之一(如果不是最好的话)。它将显示每个会话当前正在运行的查询(对于该会话)或会话生命周期(对于休眠会话)消耗了多少 CPU。运行它几次以获取增量,以查看哪些会话当时实际消耗了处理器。

关于如何开始使用 sp_whoisactive 有很多不错的帖子。将它插入 Google 并查看第一页结果列表将为您提供一个良好的开端。Adam 有一个 30 天的监控系列,可带您了解所有功能。熟练使用它,您将获得巨大的帮助。

答案2

要查看 SQL Server 使用处理器的所有内容的唯一方法是打开 Profiler,并打开所有选项。

不要这么做。当然,这是不可行的,而且实际上会使调查变得糟糕,因为 Profiler 会占用您的处理器时间。

我建议打开 Profiler,并严格限制过滤器和范围,这样它就会显示占用处理器时间且您可以控制的事件、查询和过程,而不会因 Profiler CPU 使用率过高而对结果造成不可接受的毒害。

相关内容