2010-06-08 30 views
5

我被要求监视SQL Server(2005 & 2008),并且想知道哪些指标可以衡量?我可以访问WMI计数器,但稍微失去了多少深度会有用。要在SQL Server上监视什么

目前,我有我的名单上:

  • 用户连接每秒
  • 闩锁等待每秒
  • 总闩锁等待时间
  • 登录每秒
  • 错误
  • 死锁每秒
  • 日志和数据文件大小

我期望能够监视值,这些值将指示机器性能下降或潜在的严重问题。为此,我也想知道,这些东西中的一些会被认为是正常的还是有问题的?

正如我认为它很可能是一个很好的问题已经回答了广大社区我想我会打官司一些你的DBA专家那里(我肯定不是其中之一!)

道歉如果是一个相当开放的问题。 RY

+0

这一切都归结到你需要这种监控的内容。 – 2010-06-08 14:01:53

+2

这篇文章有点老了,但可能有一些很好的建议http://www.sql-server-performance.com/articles/per/10_baselining_tips_p1.aspx – 2010-06-08 14:06:16

+0

一个箱子遇到麻烦的迹象是我所追求的。意识到这非常含糊,但理想情况下,我想将受监视项目组织成3个类别,分别为'FYI','Warning'和'Critical' – rjshuttleworth 2010-06-08 14:07:31

回答

1

使用SQL事件探查器,以确定您的前10名(或更多)查询。为这些查询创建基准性能。查看当前平均执行时间与基准的比较,并在基线以上显着提醒。您也可以使用此列表来确定可能的优化查询。

这个问题的攻击水平高于查看详细统计数据的水平,尽管这些统计数据也可能有用。我发现这种方法适用于任何DBMS,包括MySQL和Oracle。如果您的顶级查询时间开始增加,您可以打赌您已经开始遇到性能问题,您可以开始深入了解性能问题。

1

预算允许,值得看一些第三方工具来帮助。我们使用Idera's SQL Diagnostic Manager来监视服务器运行状况,并使用Confio's Ignite来关注查询性能。这两款产品在我们的商店中都很好。

1

CPU利用率和平均磁盘队列长度也很标准。持续超过80%的CPU表明您可能需要更多或更好的CPU(以及用于存放它们的服务器);在任何磁盘队列上始终超过2表示在该驱动器上存在磁盘I/O瓶颈。

0

您应该监视分配给特定进程的总页数。您可以从查询sys数据库中获取该信息。

sys.dm_exec_sessions s 
    LEFT JOIN sys.dm_exec_connections c 
     ON s.session_id = c.session_id 
    LEFT JOIN sys.dm_db_task_space_usage tsu 
     ON tsu.session_id = s.session_id 
    LEFT JOIN sys.dm_os_tasks t 
     ON t.session_id = tsu.session_id 
     AND t.request_id = tsu.request_id 
    LEFT JOIN sys.dm_exec_requests r 
     ON r.session_id = tsu.session_id 
     AND r.request_id = tsu.request_id 
    OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) TSQL 

下面的文章解释真的很好,你可以用它来监视你的服务器时,没有工作 http://tsqltips.blogspot.com/2012/06/monitor-current-sql-server-processes.html

+0

我们还使用Quest数据库性能分析,提供非常好的视觉图片在服务器上。其中一件坏事是它告诉谁是受害者,但很难弄清谁在消耗资源。 – dhi 2012-06-18 21:59:21

0

除了上述建议的性能指标,我强烈建议监视可用内存,批请求/秒, SQL编译/秒和SQL重新编译/秒。所有可在sys.dm_os_performance_counters视图和Windows Performance Monitor

至于

理想,我想被监控项目组织分为3类,说“FYI”,“警告” &“严重”

有许多第三方监控工具使您能够创建不同严重性级别的警报,因此,一旦确定要监视的内容以及针对您的环境推荐的值,可以设置低,中和高警报。

检查布伦特奥扎尔的文章没有那么有用的指标here

5

晚的答案,但感兴趣的可以到其它读者

我的一个同事有类似的问题,并用此线程帮助让他开始。 他还遇到了一篇博客文章,描述了性能问题的常见原因,并且指出了应该监控哪些指标,除了这里已经提到的指标之外。这些其他的指标是:

•%磁盘时间:

此计数器显示磁盘问题,但必须与当前磁盘队列长度计数器一起观察到真正的信息。还要回顾一下,在磁盘时间百分比达到100%之前,磁盘可能是瓶颈。

•%磁盘读取时间和%磁盘写入时间:

%磁盘读取时间和%磁盘写入时间指标分别类似于%磁盘时间,只是显示的操作读取或写入磁盘, 。它们实际上是以百分比表示的平均磁盘读取队列长度和平均磁盘写入队列长度值。

•%空闲时间:时间

的措施的比例磁盘是采样间隔期间的空闲。如果此计数器低于20%,则磁盘系统已饱和。您可以考虑用更快的磁盘系统替换当前的磁盘系统。

•%的可用空间:

措施的选择逻辑磁盘驱动器上的可用空间的百分比。请注意,如果这降低到15%以下,您可能会用尽操作系统存储重要文件的空间。一个明显的解决方案是添加更多的磁盘空间。

如果你想阅读整个后,您可以在这里找到: http://www.sqlshack.com/sql-server-disk-performance-metrics-part-2-important-disk-performance-measures/