日期:2013-02-06  浏览次数:20463 次

  SQL Server 2005的新功用为动态管理对象,它们是在指定时间前往某个数据库实例的特殊形状信息的数据库视图或函数。这些对象允许数据库管理员或开发者对数据库服务器进行高效监控。动态管理对象取代了SQL Server以前版本中的许多系统表格,但也为数据库管理员提供更多观测手段。

  服务器上需求监控的内容,几乎都有对应的动态管理对象。既然有这么多动态管理对象,在这篇文章中逐一进行讨论是不实际的。例如,共有12类动态管理对象,但这里我次要讨论我认为相当重要的五个对象,它们分别来自与SQL Server操作系统、目录和执行有关的类中。

  这些对象被分为两类:数据库级别和服务器级别。SQL Server 2005的安全构架有些不同,所以你必须采取一些措施保证你能够使用本文讨论的视图和函数。你必须保证使用这些例子的用户能够查看对象的SERVER STATE和DATABASE STATE。可以使用GRANT语句来完成这一点。

  在我开始引见动态管理对象之前,你应该建立一个可用在所有例子里面的表格。列表A是建立这个表格的代码。

  列表A

IF OBJECT_ID('DMVTest') IS NOT NULL
DROP TABLE DMVTest
GO
CREATE TABLE DMVTest
(
C1 INT IDENTITY PRIMARY KEY CLUSTERED,
C2 INT,
C3 CHAR(5)
)

  SQL Server操作系统相关动态管理对象

  sys.dm_os_performance_counters:这个视图前往的信息列举与SQL Server直接相关的功用统计。前往的信息代表通过Windows功用监控器显示的外部功用计数器。在SQL Server 2000中,这些数据以一个叫做sysperfinfo的系统表格来表示,SQL Server 2005中也有这个表格,但仅用于向后兼容。将来的版本可能会删除这个表格。