如何获得有关CPU /内存/等之类的数据库特定性能指标。在SQL Server 2005中?

时间:2020-03-06 14:21:23  来源:igfitidea点击:

我在共享SQL Server 2005群集实例上有几个数据库,希望将其用作性能指标。我有一些运行了很长时间的进程,并怀疑应该归因于代码效率低下,而不是硬件不足。

我想要一些获取这些性能指标的方法,以便可以排除数据库硬件为元凶。

解决方案

这很棘手……我们可以使用性能监视器来跟踪硬件和操作系统因素,例如CPU使用率,内存;以及各种SQL Server计数器,例如每秒查询。显然,内存使用量会告诉我们是否需要更多的RAM,但是要判断(例如)CPU使用率高是由于效率低下的代码还是密集型代码,并不是那么容易。

一些计数器对于深入研究ino性能问题更有用,例如可以计算DB中的锁,问题是我们无法确定多少个太多,因为所有代码的工作方式都不一样。我们可以判断我们是否经历了太多,或者缓慢的时期是否等于大量的经历。这也适用于其他各种计数器,并查看要查看的内容。

另一件事是运行跟踪(SQL Server工具)以获取运行查询的列表。以最慢/最大的一些为例,看看运行它们时会执行什么执行计划,这将建议我们优化查询,尽管这取决于我们决定代码效率低下还是像以前一样密集。

最后,获得Spotlight之类的工具,该工具可以汇总大量数据库状态并将其详细显示给我们。

我刚刚读了一篇很棒的文章,介绍了使用typeperf.exe内置的Windows来解决此问题。 http://www.mssqltips.com/tip.asp?tip=1575

啊,听起来像是SQL Profiler的工作。
http://msdn.microsoft.com/zh-CN/library/ms181091(SQL.90).aspx