0

我在一个共享的 SQL Server 2005 集群实例上有几个数据库,我想要性能指标。我有一些进程运行了很长时间,并且怀疑代码效率低下,而不是硬件不足是罪魁祸首。

我想要一些方法来获得这些性能指标,这样我就可以排除数据库硬件是罪魁祸首。

4

3 回答 3

1

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

一些计数器更有助于深入研究性能问题 - 可以计算数据库中的锁之类的东西,问题是您无法分辨多少是太多,因为所有代码的工作方式都不同。您可以判断您是否经历了太多,或者缓慢的时期是否等同于大量计数。这也适用于其他各种柜台 - 去看看有什么可以查看的。

另一件事是运行跟踪(sql server 工具)以获取正在运行的查询列表。取一些最慢/最大的,看看当你运行它们时会出现什么执行计划——这表明你可以优化查询,尽管由你来决定代码是效率低下还是和以前一样密集。

最后,获得一个像 Spotlight 这样的工具,它可以汇总大量数据库统计数据并将其详细显示给您。

于 2008-09-18T13:58:44.293 回答
1

我刚刚阅读了一篇关于使用 typeperf.exe 中内置的 windows 来解决这个问题的好文章。 http://www.mssqltips.com/tip.asp?tip=1575

于 2008-09-18T14:12:09.440 回答
1

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

于 2008-09-18T16:49:57.347 回答