在我们对服务器行为数据收集组所收集的数据类型有了简单的了解,那么这个性能数据收集器是如何收集这些信息并将其存储在MDW中的呢?
数据收集实际上就是部分SQL Server代理任务的按计划执行。当运行一个任务时,它会启动一个叫做数据收集器运行组件(dcexec.exe)的程序,用来加载和执行SSIS包。在本文的例子中,SSIS包每隔60秒收集DMV和性能监控器计数器,然后这些信息被存储在被监控SQL Server实例的一个本地文件夹中。值得注意的是,在上图中的“Cached – Collect and Update Data on the Same Schedule option,”选项要被选中。
随后每隔15分钟,将执行另一个SQL Server代理任务和SSIS包,收集存储在本地缓存文件夹中的数据,并将其移动到MDW中。从下图中,你可以看到属性页面的另一部分,在这儿你可以设定多长时间进行一次上传数据。
图4 设定数据上传计划
一旦数据被移动到MDW后,它就以使用三种内置报表之一或任何你创建的定制报表来形成报表。
数据收集器通过两种不同的方式来实现数据被收集和移动到MDW中:缓冲和非缓冲。缓冲方式就是上面我所介绍的方式,一个任务和SSIS包用于收集数据并将其存储在本地缓冲文件中,然后另一个任务和SSI包将数据从本地缓冲文件移动到MDW中。这种方式有助于降低数据收集器的负载,因为它降低了数据在监控实例和MDW之间的移动频率。
非缓冲方式,在磁盘使用数据收集组中使用,其工作方式略有不同。它不使用两步来移动数据到MDW,而是一步完成收集和上传数据工作。这种方式会略微增加负载,但是如果不频繁使用,不会对SQL Server的性能带来太大影响。
数据收集器的另一个功能是老数据会按照一个默认的计划来自动从MDW中清除,或者你也可以在图2和图3中设定数据在MDW中保留的时间。
你或许会问这样一个问题,性能数据收集器会产生多大负载。尽管这可能取决于你的服务器的负载以及你的服务器的硬件,通常来讲,在默认数据集设置下,它会增加4%左右的CPU利用率,每天收集大约250-300MB的数据。如果你创建自己的数据集合集,其负载可能要更大一些。
性能数据收集器的报表功能
性能数据收集器包含三个内置报表,每一个默认数据收集组对应一个报表。在本篇文章中,我们不会对每一个进行详细介绍,只是对它们进行快速的亮点介绍,如果你想深入的了解它们,可以自己去使用研究。
首先,让我们来看一下磁盘使用报表。
图5 磁盘使用数据收集组跟踪报告磁盘空间信息
该报告跟踪你的MDB和LDF文件的磁盘空间使用情况,既提供真实的数据也可显示简单的趋势线。这些信息可以帮助DBA更加主动,防止遭遇空间用尽的情况发生。点击其中的任何数据库,你将看到一个子报表,显示每一个数据库中数据是如何划分空间的。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。