我在一个共享的SQL Server 2005群集实例上有几个数据库,我想要这些数据库的性能指标。我有一些运行了很长时间的进程,我怀疑是代码效率低下,而不是硬件不足。
我想要一些方法来获得这些性能指标,这样我就可以排除数据库硬件是罪魁祸首。
发布于 2008-09-18 13:58:44
这很棘手..。您可以使用性能监视器来跟踪硬件和操作系统因素,如CPU使用率、内存;还可以跟踪各种SQL Server计数器,如每秒查询次数。显然,内存使用率会告诉你是否需要更多的RAM,但是很难判断(比方说)高CPU使用率是因为低效的代码,还是仅仅是密集的代码。
一些计数器对深入了解性能问题更有帮助-数据库中的锁可以计算在内,问题是你不能区分多少是太多,因为所有代码的工作方式都不同。你可以分辨出你是否经历了太多,或者缓慢的时期是否等同于大量的计数。这也适用于其他各种计数器-去看看有什么可以查看的。
要做的另一件事是运行跟踪(sql服务器工具)以获取正在运行的查询的列表。取几个最慢/最大的代码,看看当你运行它们时会出现什么执行计划-这会建议你优化查询,尽管这取决于你决定代码是低效还是像以前一样密集。
最后,得到一个像Spotlight这样的工具,它可以收集大量的数据库统计数据,并详细地显示给你。
发布于 2008-09-18 14:12:09
我刚刚读了一篇关于在typeperf.exe中内置windows来解决这个问题的很棒的文章。http://www.mssqltips.com/tip.asp?tip=1575
发布于 2008-09-18 16:49:57
啊,听起来像是SQL Profiler的工作。http://msdn.microsoft.com/en-us/library/ms181091(SQL.90).aspx
https://stackoverflow.com/questions/92696
复制相似问题