1
81
某种程度上。签出此查询:
这将根据计划缓存中的CPU使用量的顺序来获取查询。您可以像在SQL代理作业中一样定期运行此命令,并将结果插入表中,以确保数据在重新启动之后仍然存在。 当您阅读结果时,您可能会意识到为什么我们不能将这些数据直接关联回单个数据库。首先,一个查询还可以通过以下操作隐藏其真正的数据库父级:
查询将在msdb中执行,但它将轮询来自AdventureWorks的结果。我们应该在哪里分配CPU消耗? 当你:
它一直在持续。这就是为什么在查询级别而不是数据库级别进行性能优化是有意义的。 在SQL Server 2008r2中,Microsoft引入了性能管理和应用程序管理功能,使我们能够将单个数据库打包到可分发和可部署的DAC包中,而且这些功能有望使管理单个数据库及其应用程序的性能变得更容易。不过,它仍然不能满足你的需求。 更多信息,请查看 T-SQL repository at Toad World's SQL Server wiki (formerly at SQLServerPedia) . 在1/29更新,包括总数字,而不仅仅是平均数。 |
2
15
SQL Server(从2000开始)将安装性能计数器(可从性能监视器或性能监视器查看)。 计数器类别之一(来自SQL Server 2005安装为:) -SQLServer:数据库 每个数据库有一个实例。但是,可用的计数器不提供CPU%利用率计数器或类似的计数器,尽管有一些速率计数器,您可以使用它们来获得对CPU的良好估计。例如,如果您有两个数据库,并且测量的速率为数据库A上的20个事务/秒和数据库B上的80个事务/秒,那么您将知道A大约占总CPU的20%,而B则占其他80%。 这里有一些缺陷,因为这假设所有正在完成的工作都是CPU限制的,当然对于数据库来说,这不是。但我相信这将是一个开始。 |
3
6
下面是一个查询,它将显示导致高负载的实际数据库。它依赖于查询缓存,在内存不足的情况下,查询缓存可能会频繁刷新(使查询不那么有用)。
|
4
1
我认为你问题的答案是否定的。 问题是一台机器上的一个活动可能会导致多个数据库上的负载。如果我有一个进程正在从一个配置数据库读取数据,记录到一个日志数据库,并根据类型将事务移入和移出不同的数据库,我该如何划分CPU使用率? 您可以将CPU利用率除以事务负载,但这也是一个可能误导您的粗略指标。例如,如何将事务日志从一个数据库传送到另一个数据库?读写中是CPU负载? 你最好看看一台机器的事务速率和它导致的CPU负载。您还可以对存储过程进行概要分析,看看它们中是否有任何一个占用了过多的时间;但是,这并不能得到您想要的答案。 |
5
1
所有这些都在心里。
|
6
0
看一看 SQL Sentry . 它能满足你所有的需要,还有更多。 当做, 利芬 |
7
0
您看过SQL事件探查器吗? 采用标准的“T-SQL”或“存储过程”模板,调整字段以按数据库ID分组(我认为您必须使用该数字,您无法获取数据库名称,但使用exec sp_数据库可以很容易地找到该列表) 运行一段时间,您将得到总的CPU计数/磁盘IO/等待等。这可以给您每个数据库使用的CPU比例。 如果同时监视PerfMon计数器(将数据记录到SQL数据库),并对SQL事件探查器(记录到数据库)执行同样的操作,则 可以 能够将两者联系起来。 即使如此,它也应该给你足够的线索,让你知道哪个数据库值得更详细地研究。然后,只对该数据库ID执行同样的操作,并查找最昂贵的SQL/存储过程。 |
8
0
请检查此查询:
|
RoddyRott · 如何监视AWS中的线程 6 年前 |
Diego · 内存达到88%时服务器崩溃 6 年前 |
UserControl · 了解Azure PaaS指标 6 年前 |
rookie09 · 普罗米修斯时间序列生成的图形在不同形状之间跳跃 7 年前 |
Ryan · 让Heapster和InfluxDB进行通信 7 年前 |