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性能监控报表

官方英文链接:SQL Server 2008 Management Data Warehouse

补充:用过oracle的都知道,oracle有强大的AWR(自动工作负载库)的支持,我们可以从采样的快照数据中查询数据库的历史信息。因为一些监控和系统分析需要,sqlserver也需要能够查询历史数据,所以就想到了类似于AWR的MDW(管理数据仓库)。我们可以通过查看报表视图方式发现历史问题,也可以查询相关的表来获得信息。

[转帖]10.2 Data Collector与MDW的更多相关文章

  1. StreamSets Data Collector Edge 说明

    Data Collector Edge 是不包含界面的agent 安装 下载包 https://streamsets.com/opensource tar xf streamsets-datacoll ...

  2. [CareerCup] 10.2 Data Structures for Large Social Network 大型社交网站的数据结构

    10.2 How would you design the data structures for a very large social network like Facebook or Linke ...

  3. 10 Big Data Possibilities for 2017 Based on Oracle's Predictions

    2017 will see a host of informed predictions, lower costs, and even business-centric gains, courtesy ...

  4. Oracle涂抹oracle学习笔记第10章Data Guard说,我就是备份

    DG 是备份恢复工具,但是更加严格的意义它是灾难恢复 Data Guard是一个集合,由一个Primary数据库及一个或者多个Standby数据库组成,分两类逻辑Standby和物理Standby 1 ...

  5. [转帖]10分钟看懂Docker和K8S

    10分钟看懂Docker和K8S https://zhuanlan.zhihu.com/p/53260098 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司. 这 ...

  6. 【你吐吧c#每日学习】11.10 C# Data Type conversion

    implicit explicit float f=12123456.213F int a = Convert.ToInt32(f); //throw exception or int a = (in ...

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

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

  8. SQL Server添加MDW性能监控报表

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

  9. SQL Server 2008性能故障排查(一)——概论

    原文:SQL Server 2008性能故障排查(一)--概论 备注:本人花了大量下班时间翻译,绝无抄袭,允许转载,但请注明出处.由于篇幅长,无法一篇博文全部说完,同时也没那么快全部翻译完,所以按章节 ...

  10. 删除Management Data Warehouse (MDW) job失败

    转:http://lzf328.blog.51cto.com/1196996/1349670 最近在清理一些不用的Job,发现几个跟MDW有关的.虽然Job已经被Disable, 但是没有被删除.尝试 ...

随机推荐

  1. 为什么在使用onnxruntime-gpu下却没有成功调用GPU?

    20240105,记. 最近在使用GPU对onnx模型进行加速过程中(仅针对N卡,毕竟也没有别的显卡了..),遇到了点问题:就是明明在安装了合适版本的显卡驱动和CUDA后,onnx还是不能够成功调用G ...

  2. Pikachu漏洞靶场 (SSRF服务端请求伪造)

    SSRF(Server-Side Request Forgery:服务器端请求伪造) curl 点击 累了吧,来读一首诗吧 url是这样的: http://192.168.171.30/pikachu ...

  3. 解决 cv2.destroyAllWindows() 无效问题

    方法一 示例代码: import cv2 import numpy as npimg = np.zeros((512,512),np.uint8)#生成一个空灰度图像 cv2.line(img,(0, ...

  4. static、final、private是否可以修饰抽象方法?

    1.static和abstract:是不能共存的.static是为了方便调用,abstract是为了给子类重写,没有方法体. 2.final和abstract:是互相冲突的,final修饰的方法不能重 ...

  5. 基于OpenHarmony L2设备,如何用IoTDeviceSDKTiny对接华为云

    摘要:本文主要讲解如何基于L2设备对接华为云IoTDA,以DAYU200开发板,采用IoTDeviceSDKTiny对接华为云IoTDA,当然这里也可以采用其他OpenHarmony的富设备. 本文分 ...

  6. CentOS7安装maven,mvn clean -DskipTests package

    1.JAVA_HOME 首先确保正确安装并配置了JAVA_HOME 我这里安装了jdk1.8 2.下载maven 3.6.3 wget https://mirrors.tuna.tsinghua.ed ...

  7. Windows系统快速安装Superset 0.37

    Windows系统安装Superset 0.37 Superset 是一款由 Airbnb 开源的"现代化的企业级 BI(商业智能) Web 应用程序",其通过创建和分享 dash ...

  8. Html 表格 在线转 Markdown

    复制 HTML Table F12 查看网页源代码 Html to markdown 在线转换 https://tableconvert.com/html-to-markdown 复制 Markdow ...

  9. Python 网络编程 netaddr

    1.安装 netaddr 组件 pip install netaddr -i https://mirrors.aliyun.com/pypi/simple/ from netaddr import I ...

  10. deepin15.11系统使用罗技k380键盘

    罗技k380键盘官方支持安卓.windows.macos,就是没有支持Linux系统.在开发过程中使用的是Deepin15.11系统,如何连接罗技k380就是一个问题,折腾了一段时间后解决这个问题.记 ...