过去7天生成SQL Server CPU使用情况

时间:2016-09-21 13:15:53

标签: sql-server sql-server-2012

我要求在过去7天内为我的SQL服务器生成CPU使用情况报告。我将使用图表来表示它。

另外,我必须跟踪每天消耗最多CPU的前10个查询。

我在下面有一篇文章,但我很少有疑问。

CPU utilization by database?

的疑问: 我怎么知道,昨天的整体CPU使用情况如何?我是否必须为昨天运行的不同查询添加所有AvgCPU time

2 个答案:

答案 0 :(得分:1)

没有可靠的方法来获取每天/过去5天的CPU使用率。我看到SQLServer有以下列..

select
creation_time,
last_worker_time,
total_worker_time,
execution_count,
last_execution_time
from sys.dm_exec_query_stats

以下报道我的测试实例..

enter image description here

正如您从上面的截图中看到的那样..

我们无法可靠地获取count of instances a particular query got executed on a particular day ..此外,如果重新启动SQLServer,您将看到整个数据被重置

如果你真的想每天显示数据,你可以使用perfmon ..这里有一些教程可以帮助你..

1。Collecting Performance Data into a SQL Server Table
2。Using PerfMon for SQL Server Reporting Services Performance Management

答案 1 :(得分:0)

您还可以查看MS SQL Data collection sets。易于部署,易于保存必要的数据(只要存储在专用数据库中),并且至少它真正符合您对10大CPU昂贵查询的要求。 您还可以稍微修改收集器服务器上的收集器代理和目标表的t-sql,以便在需要时获取一些额外的CPU信息。