技术开发 频道

初探SQL Server 2008的性能数据收集器

  现在我们对服务器行为数据收集组所收集的数据类型有了简单的了解,那么这个性能数据收集器是如何收集这些信息并将其存储在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更加主动,防止遭遇空间用尽的情况发生。点击其中的任何数据库,你将看到一个子报表,显示每一个数据库中数据是如何划分空间的。
0
相关文章