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. 【LeetCode】258. Add Digits (2 solutions)

    Add Digits Given a non-negative integer num, repeatedly add all its digits until the result has only ...

  2. 39. Volume Rendering Techniques

    Milan Ikits University of Utah Joe Kniss University of Utah Aaron Lefohn University of California, D ...

  3. Linux之重定向

    Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作. Linux默认 ...

  4. 安装python官方的mysql库“mysql-connector-python”

    $ echo https://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.1.3.tar.gz >> ...

  5. 定时5秒之后驻留在元素ID为content元素的内容

    如果我只能刷新一个特定的页面的一部分,这将是很大的,例如:仪表盘上的交通灯显示系统状态. 这是很容易通过使用jQuery JavaScript库,只刷新页面的一部分.一旦我们纳入我们的页面的jQuer ...

  6. c# -- 对象销毁和垃圾回收

    有些对象需要显示地销毁代码来释放资源,比如打开的文件资源,锁,操作系统句柄和非托管对象.在.NET中,这就是所谓的对象销毁,它通过IDisposal接口来实现.不再使用的对象所占用的内存管理,必须在某 ...

  7. Glide.centerCrop()第一次显示无效

    Glide.with(context)      .load(url)      .centerCrop()     /** fitCenter() */      .placeholder(R.mi ...

  8. android 模拟器

    参考:http://www.syscs.com/node/504 --skin WVGA800 - -no-boot-anim -wipe-: the dpi for the device you a ...

  9. ubuntu14.04服务版/etc/init.d/smbd restart无效的解决方法

    刚装的ubuntu14.04配置完smbd发现service或者/etc/init.d/smbd restart都不显示任何输出,也没起作用 echo $?输出1,查看脚本发现 if init_is_ ...

  10. java之对象转型

    对象转型(casting) 1.一个基类的引用类型变量可以“指向”其子类的对象. 2.一个基类的引用不可以访问其子类对象新增加的成员(属性和方法). 3.可以使用 引用变量 instanceof 类名 ...