【IT168 专稿】SQL Server中有不少工具可以帮助DBA们对性能问题进行识别和排障,诸如事件探查器、系统监视器、数据库引擎调优顾问、Management Studio和T-SQL命令等等。上述工具中有的可以记录数据库的历史日志,有的则不能。即便你所使用的工具能够记录日志,它捕获和分析日志数据的能力也通常比较难用。除非你手动编写自己的日志解决方案,有的工具甚至不允许记录任何类型的日志,诸如监视动态管理视图(DMV)。不同的工具和数据收集方法的杂乱无章,使得DBA们很难轻松的识别并修复不同的性能问题。
一种完美的情况是,SQL Server应该包含这样一个工具,它不仅仅能够自动的收集所有重要性能数据,供DBA们识别和修复性能问题;它还应将这些数据以一种单一的格式进行存储,并且存储在同一个地方,而且还包含高级报表功能,以允许DBA们能够轻松的理解这些数据,从而可以确定相应的解决方案。
尽管SQL Server 2008不包含完美的性能收集和分析工具,它却提供了一个叫做性能数据收集器的新功能,可以说它已经朝着理想的工具迈出了第一步。
简而言之,性能数据收集器在以下几方面对DBA们带来了帮助:
·作为一个中心数据库(Central Data Repository)使用
性能数据收集器的一部分是管理数据仓库(Management Data Warehouse,MDW)。它在一个中心点上存储所有收集来的数据。它可以存储来自于单个SQL Server数据库实例的数据,也可以存储来自多个实例的数据。尽管SQL Server 2008中的管理数据仓库功能的重点是存储性能相关的数据,不过在SQL Server将来的版本中,它将可以存储你希望从SQL Server中收集的任何数据,诸如扩展事件(Extended Events)、审计数据等等。MDW是可扩展的,因此你可以根据需要,在MDW中存储自己的数据。
·收集选择的SQL Server性能数据
MDW用来存储性能数据,而真正的数据收集工作由数据收集组(Data Collection Sets)来执行。SQL Server 2008具有三个内置的数据收集组:一个用于收集磁盘使用(Disk Usage)信息;另一个用于收集查询统计数据(Query Statistics);第三个用于收集大量的服务器行为(Server Activities)数据。据微软表示,这三个数据收集组可以收集那些识别和排障多数常见SQL Server性能问题所需的重要数据。如果你认为这些数据还不够用,你可以创建自己的定制数据收集组。
·显示性能报表
存储在数据仓库内的数据如果不被使用,就毫无价值。SQL Server 2008包含了三个内置报表,包括磁盘使用摘要(Disk Usage Summary)、查询统计历史(Query Statistics History)和服务器行为历史(Server Activity History)。这些报表都可以让你检查单个SQL Server实例的历史记录,另外,在每一个报表中,你都可以追溯到子报表中,让你更详细的查看服务器信息。如果你认为这些内置报表不够完整,或者你希望获得关于特定数据的报表,或者产生包含来自多个SQL Server实例信息的报表,你需要使用SQL Server的Business Intelligence Development Studio或任何其它的报表服务工具,来创建自己的定制报表。
无论是SQL Server 2008标准版还是企业版,都完全支持性能数据收集器功能。它只适用于SQL Server 2008实例,不能兼容此前版本的SQL Server。
如何配置性能数据收集器
在你安装了SQL Server 2008后,性能数据收集器并没有默认配置好。你可以通过以下两步来对其配置,并将其启用。
1.第一步是使用“配置管理数据仓库(Configuration Management Data Warehouse)”向导来创建管理数据仓库数据库,选择“创建或升级一个管理数据仓库(Create or Upgrade a Data Management Warehouse)”选项。尽管这个数据库可以被存储在任何SQL Server上,你还是更应该为其专门创建一个数据库实例。这样,有助于帮助你降低性能数据收集器对你的生产服务器的影响。一个中心MDW可以为多个SQL Server实例存储数据。
2.第二步是启用性能数据收集器。为了实现这个目的,你需要再次启动“配置管理数据仓库(Configuration Management Data Warehouse)”向导,不过这次你要选择“建立数据收集(Setup Data Collection)”选项,然后它会让你选择希望将性能数据存储在哪一个服务器和MDW数据库上。一旦该向导完成后,性能数据收集器就会被启用,立即开始数据收集。
图1 配置管理数据仓库向导
如果你希望在多个SQL Server 2008实例上启用性能数据收集器,则必须在每个你希望监控的实例上运行一次该向导,并且每次都把中心MDW数据库服务器地址指向你的服务器。