加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 管理数据收集,监控数据库性能的利器

发布时间:2022-12-07 15:32:55 所属栏目:MsSql教程 来源:未知
导读: 点击上方SQL数据库开发,关注获取SQL视频教程
SQL专栏
背景
SQL Server性能和优化是我们经常讨论的一个话题,也是要经常面对的一个问题,当SQL Server大型数据库遇到性能瓶颈时,我们不得不

点击上方SQL数据库开发,关注获取SQL视频教程

SQL专栏

背景

SQL Server性能和优化是我们经常讨论的一个话题,也是要经常面对的一个问题,当SQL Server大型数据库遇到性能瓶颈时,我们不得不查找原因,分析问题,解决问题。

在处理性能问题时,数据库专家倾向于关注系统的技术层面,如资源队列、资源利用率等。而一般用户只把性能问题简单地认为是等待时间,他们发出一个请求,然后等待返回结果。用户通常认为在交互请求后,超过三秒才得到响应,就算存在性问题了,他们并不关心平均每个磁盘转轴上有多少命令在待,或者缓存命中率(cache hit ratio)是多少,也不关心阻塞、CUP利用率、缓存中数据页的平均停留时间(page life expectancy)等。他们只关心等待时间,这正是优化性能应该着手的地方。

SQL Server 2008引入的数据收集器组件正用来分析以上问题,本篇不讨论各种优化方式,仅认识数据收集器和使用方法。

数据收集器简介

SQL Server 2008引入了一个称为数据收集器(data collector)的组件,用于从多种来源收集不同类型的数据(性能方面的数据或其他数据),并将这些性能信息保存在称为管理数据仓库(management data warehouse)的关系数据库中。

数据收集器会安装三个系统数据收集组(system data collection set),分别用于收集磁盘使用情况、服务器活动、查询统计信息。新的数据收集平台可以帮助你自动收集性能和其他信息,也可以通过预先配置的报表,以图表方式对数据进行分析。

通过以上简单介绍,不难看出里面提到到几个核心的东西,即【数据仓库】【数据收集】【统计分析报表】。要得到各种数据,需要有地方来存储,以备后期分析报表,这就需要数据仓库。有了数据仓库还需要设置数据收集过程,如收集频率等等,这就是数据收集。数据已经收集到了数据仓库,需要通过分析报表查看分析结果,以便于进一步对症下药。说了这么多,还是先动手从实例中体验结果。

配置管理数据仓库

首先要确保SQL Server代理要启动,然后实例上 -> 管理 -> 数据收集 -> 配置管理数据仓库

配置承载数据仓库的实例及数据库:

图例:

mssql 管理器_自救器管理台账_煤矿自救器管理台账

mssql 管理器_自救器管理台账_煤矿自救器管理台账

煤矿自救器管理台账_mssql 管理器_自救器管理台账

mssql 管理器_自救器管理台账_煤矿自救器管理台账

mssql 管理器_自救器管理台账_煤矿自救器管理台账

继续下一步,直到完成。

配置当前数据库做数据仓库的监视对象

上一套配置步骤已经准备好了承载数据仓库,现在就要将当前的实例绑定到以上数据仓库。下面同样使用以上向导,但选项不同。

图例:

自救器管理台账_mssql 管理器_煤矿自救器管理台账

mssql 管理器_煤矿自救器管理台账_自救器管理台账

自救器管理台账_mssql 管理器_煤矿自救器管理台账

煤矿自救器管理台账_自救器管理台账_mssql 管理器

继续下一步,直到完成。

到此数据仓库和数据收集创建完成mssql 管理器,将看到下图的状态。

煤矿自救器管理台账_自救器管理台账_mssql 管理器

通过以上步骤自动创建的三个数据收集组,各数据收集组有默认的属性,比如数据仓库中的数据保留时间,数据上载计划等。数据上载计划带有一些默认的值,如每小时自动上载一次,每10分钟自动上载一次...也可以自定义,按照这些时间点,当前实例的系统性能数据自动上载到数据仓库中。看如下图:

自救器管理台账_煤矿自救器管理台账_mssql 管理器

mssql 管理器_自救器管理台账_煤矿自救器管理台账

mssql 管理器_煤矿自救器管理台账_自救器管理台账

自救器管理台账_mssql 管理器_煤矿自救器管理台账

mssql 管理器_煤矿自救器管理台账_自救器管理台账

煤矿自救器管理台账_自救器管理台账_mssql 管理器

通过报表结果能看出哪些等待类别、哪个时间点占用资源最高,比如通过柱状图能分析出占用资源的系统类型和高峰期等。对于三种数据收集组的数据详细的结果,我正在进一步研究,计划专门写篇博文分析介绍详情。

动态管理视图(DMV)

也可以通过动态管理视图(DMV)sys.dm_os_wait_stats,查出各等待类型。

它包含以下属性:

wait_type 等待类别。

waiting_task_count 表示该类待的数量。

wait_time_ms 以毫秒为单位的该类等待的总等待时间(该时间包含signal_wait_time_ms)。

max_wait_time_ms 最大等待时间。

signal_wait_time_ms 它是正在等待的线程从收到信号通知到其开始运行之间的时差。

注:对于SQL Server之前的版本没有数据收集器组件,也可以通过此DMV查询分析相关值。

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!