10.2 Data Collector与MDW

Data Collection功能是SQL SERVER 2005版本提供的数据库监控报表的功能,通过定时地对数据库的语句运行情况,服务器各种资源的监控等信息的记录收集起来,并将数据保存在MDW(Management Data Warehouse,管理数据仓库)中,MDW为用户们提供了非常方便的性能分配报表。

10.2.1 MDW的配置

开启SQL SERVER的MDW功能,要求数据库需要开启SQL Server 代表(Agent)服务。配置MDW需要在SQL Server管理界面(SSMS)的对象服务器配置下的管理子项中右键配置,如下图10-6中所示,

图10-6 开启MDW向导

MDW的配置分为两个步骤,首先需要创建一个MDW,如图中所示Create or upgrade a management data warehouse选项配置,根据向导,配置完成以后。然后,还需要开启data collection的功能。如图中第二个选项Set up data collection,根据向导将data collection开启以后,我们会发现,在Agent服务中多出来几个调度任务,如下图10-7中所示:

图10-7 MDW的Agent作业

这些任务主要负责监控信息的采集以及数据的上传。在经过一段时间的数据采集后,可以在MDW的数据库中,查看到具体的报表信息了。

10.2.2 查看性能报表

图10-8 打开MDW报表

在MDW数据库中,点击右键,做如上图中的选择可以打开Data Collection的报表信息,可以从报表中,获取数据库实例在监控开启期间的相关资源开销,各种调度等待的信息以及服务器的活跃状态(包括批处理数据,请求数等)。同时MDW报表支持钻取的功能,可以很方便地跟踪定位到服务器故障点的详细信息。

如图10-9中所示,通过Server Activity概略图最上方一块硬件概况,可以很直观地查看到服务器的CPU,内存,IO以及网络的运行情况,同时,依据操作系统的资源使用情况以及SQL SERVER实例进程的使用情况,用不同颜色的曲线表示。如图10-9中所示,浅绿色为系统资源曲线,浅蓝色为SQL Server进程的资源曲线。其中如CPU资源图中所示,其以百分比的方式展示,浅蓝色和浅绿色曲线已经基本重合,说明服务器的CPU资源几乎都是SQL Server进程消耗掉的。如果两条曲线的中间间隔比较明显,那说明服务器上还有其他进程在使用服务器的CPU资源,需要对比一下,是否SQL Server受到其他资源的影响。其他类型的资源,包括内存的使用情况,磁盘的IO使用情况等,都是类似的,只是它们的表示单位有所不同。

需要注意的一点就是,内存和磁盘的使用情况取的都是均值,也就是说,不同的时间间隔长度上,相同的时间段内,其数值显示可能会不一样。例如,选择从早上11点为开始时间,时间间隔为4个小时的内存变化以及11点为开始时间,时间间隔为12小时内的内存变化。在两个时间间隔上,早上11点到下午3点这4个小时内的曲线有可能是不一样的。会有一定的差异,因为它们取的是平均值来构造曲线。

网络应用曲线比较特殊,它只有系统的网络使用情况,没有为SQL Server进程单独获取一个独立的曲线,因为Windows系统是无法 识别网络应用程序的进程的。

概略图中间部分,SQL Server Waits展示了实例在时间段内各种不同类型的Waite所占有比例的柱状图,可以迅速地定位到各个不同时间点数据库的资源等待情况。点击柱状图,或SQL Server Waits的字样,可以进入类型等待的详细情况列表,如10-9(b)图中的示例,上面的柱状图与概略图中的一样,在柱状图正文列出了一份列表,点击列表中的超链接部分,可以进入更细致的详细情况介绍图,如10-9(c)图中所示为Buffer IO的详细情况分析图。需要注意的是,不同的等待类型,其详细情况分析图会不一样,在这里就不一一介绍了,读者们可以自己部署一个MDW,然后仔细观察一下每个图表中不同的情况。

最下方SQL Server Activity部分显示了实例在时间点内的请求数,连接数等信息,可以清晰地看出数据库的繁忙情况。可以非常方便地判断出服务器的并发情况。点击拆线图或者SQL Server Activity字样,同样可以钻取到一些更细致的信息。

(a)

(b)

(c)

图10-9 MDW报表报表示例

以上报表数据来源于MDW的数据库,即如图10-6中所示的向导中创建的报表数据存储库里。在一些情况下,可能报表视图无法展现出我们需要的一些数据。此时,可能需要直接查看MDW中对应表中的数据。以下列出几个常用的数据表的情况。

snapshots.active_sessions_and_requests

该视图存储了动态管理视图sys.dm_exec_requests以及sys.dm_exec_sessions的一些字段信息,通过该表,可以获得某些时刻,例如使用字段collection_time过滤出来的某一时刻的在在执行的请求的信息。

snapshots.notable_query_plan

该视图存储了动态管理函数sys.dm_exec_query_plans中的执行计划缓存信息,通过该视图,可以将指定的sql_handle的执行计划打印出来。

snapshots.notable_query_text

该视图存储了动态管理函数sys.dm_exec_sql_text中关于执行计划以及执行语句的偏移量(statement_start_offset以及statement_end_offset)的信息,通过视图,可以获得某一时刻请求正在执行的存储过程对象及语句。

SELECT *

FROM snapshots.active_sessions_and_requests AS asar WITH(NOLOCK)

JOIN snapshots.notable_query_text AS nqt WITH(NOLOCK) ON asar.sql_handle = nqt.sql_handle

JOIN snapshots.notable_query_plan AS nqp WITH(NOLOCK) ON asar.plan_handle=nqp.plan_handle

WHERE asar.collection_time BETWEEN '2013-09-22 10:00:00 +08:00' AND '2013-09-22 22:00:00 +08:00';

代码清单10-1 通过MDW查询某一时间段内的请求情况

如代码清单10-1中所示,在获取22日10点到22点的请求执行情况时,需要注意,collection_time是带有时区的,所以需要加上后面的+08:00表示获取是北京时间。

SQL Server添加MDW性能监控报表的更多相关文章

  1. SQL Server添加MDW性能监控报表(转载)

    10.2 Data Collector与MDW Data Collection功能是SQL SERVER 2005版本提供的数据库监控报表的功能,通过定时地对数据库的语句运行情况,服务器各种资源的监控 ...

  2. windows系统与SQL SERVER 2008数据库服务性能监控分析简要

    软件系统性能测试体系流程介绍之windows系统与SQL SERVER 2008数据库服务性能监控分析简要 目前大部分测试人员对操作系统资源.中间件.数据库等性能监控分析都是各自分析各自的监控指标方式 ...

  3. Performance Monitor4:监控SQL Server的IO性能

    SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Applicati ...

  4. 【转】sql server数据收集和监控

    转自:https://www.cnblogs.com/zhijianliutang/p/4476403.html 相关系列: https://www.cnblogs.com/zhijianliutan ...

  5. SQL Server ---(CDC)监控表数据(转译)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现过程(Realization) 补充说明(Addon) 参考文献(References) ...

  6. SQL SERVER - 谈死锁的监控分析解决思路

    1 背景 1.1 报警情况 最近整理笔记,打算全部迁移到EVERNOTE.整理到锁这一部分,里边刚好有个自己记录下来的案例,重新整理分享下给大家. 某日中午,收到报警短信,DB死锁异常,单分钟死锁12 ...

  7. [翻译]通过使用正确的search arguments来提高SQL Server数据库的性能

    原文地址:http://www.sqlpassion.at/archive/2014/04/08/improving-query-performance-by-using-correct-search ...

  8. SQL Server 列存储性能调优(翻译)

    原文地址:http://social.technet.microsoft.com/wiki/contents/articles/4995.sql-server-columnstore-performa ...

  9. Sql Server 添加外部程序集基本操作

    简介:有时候Sql Server的内置函数没有那么好用的时候,可以引用一下外部程序集,下面献下丑,做下添加外部程序集操作 1.准备程序,编译出一个MyCLR的DLL. public class CLR ...

随机推荐

  1. PHP —— 读取文件到二维数组

    转自:PHP读取自定义ini文件到二维数组 读取文件,可以使用file_get_contents,file,parse_ini_file等,现在有一个需求,需要读取如下格式的文件: [food] ap ...

  2. webService----wsimport调用方式

    一.工具 1.myEclipse 2.jdk1.7 二.创建服务端 1.创建web Service Project 命名为TheService 2.创建class类ServiceHello.java, ...

  3. halcon学习之产品检测

    Rinspect_gasket_local_deformable.hdev   检测垫圈局部变形   *这个例子演示了如何利用局部变形匹配(local deformable matching)来寻找出 ...

  4. 在WPF中使用字体图标

    一.源码描述    这是一款基于WPF窗体应用程序的字体图标示例源码,    该源码简单易懂使用于初学者和实战项目应用,    感兴趣的朋友们可以下载看看哦. 二.功能介绍    1.用ICO字体代替 ...

  5. C#接口的使用场合,接口应用

    当一个项目不断的扩大的时候,会面临的问题是不断的有以下情况: 1.以前编写程序的人离职了,新来的程序员看不懂以前的程序,或者觉得以前的程序部够好,但又不希望删除: 2.当实现第三方接口时,如:读写IC ...

  6. 精通MVC网站、MVVM开发模式、Razor语法

    http://www.cnblogs.com/powertoolsteam/p/MVC_one.html ASP.NET MVC (一)——深入理解ASP.NET MVC 以下是ASP.NET MVC ...

  7. 转:HTML5标准与性能之四:asm.js

    HTML5标准与性能之四:asm.js Cong Liu (Intel) 于 星期五, 24/05/2013 - 01:13 提交 之前的几篇文章分别介绍了WebWorkers.Typed Array ...

  8. Asp.net Core WebApi 使用Swagger做帮助文档,并且自定义Swagger的UI

    WebApi写好之后,在线帮助文档以及能够在线调试的工具是专业化的表现,而Swagger毫无疑问是做Docs的最佳工具,自动生成每个Controller的接口说明,自动将参数解析成json,并且能够在 ...

  9. 【过程改进】总结大中小型项目的git流程

    git作为源码管理工具出于流行趋势.这里和大家一起分享下我们是如何用git的分支(branch)功能管理不同规模的项目 小型项目 推荐工具:TortoiseGit 开发阶段(第一版上线前):2个分支 ...

  10. Vim 练级攻略

    以下的文章翻译自<Learn Vim Progressively>,我认为这是给新手最好的VIM的升级教程了,没有列举全部的命令,仅仅是列举了那些最实用的命令. 很不错. -------- ...