我要求在过去7天内为我的SQL服务器生成CPU使用情况报告。我将使用图表来表示它。
另外,我必须跟踪每天消耗最多CPU的前10个查询。
我在下面有一篇文章,但我很少有疑问。
的疑问:
我怎么知道,昨天的整体CPU使用情况如何?我是否必须为昨天运行的不同查询添加所有AvgCPU time
?
答案 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
以下报道我的测试实例..
正如您从上面的截图中看到的那样..
我们无法可靠地获取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信息。