SQL Server 2005 五个动态管理对象
SQL Server 2005的新功能为动态管理对象,它们是在指定时间返回某个数据库实例的特殊状态信息的数据库视图或函数。这些对象允许数据库管理员或开发者对数据库服务器进行高效监控。动态管理对象取代了SQL Server以前版本中的许多系统表格,但也为数据库管理员提供更多观测手段。
服务器上需要监控的内容,几乎都有对应的动态管理对象。既然有这么多动态管理对象,在这篇文章中逐一进行讨论是不实际的。例如,共有12类动态管理对象,但这里我主要讨论我认为相当重要的五个对象,它们分别来自与SQL Server操作系统、目录和执行有关的类中。
这些对象被分为两类:数据库级别和服务器级别。SQL Server 2005的安全构架有些不同,所以你必须采取一些措施保证你能够使用本文讨论的视图和函数。你必须保证使用这些例子的用户能够查看对象的SERVER STATE和DATABASE STATE。可以应用GRANT语句来完成这一点。
在我开始介绍动态管理对象之前,你应该建立一个可用在所有例子里面的表格。列表A是建立这个表格的代码。
SQL Server操作系统相关动态管理对象
sys.dm_os_performance_counters:这个视图返回的信息列举与SQL Server直接相关的性能统计。返回的信息代表通过Windows性能监控器显示的外部性能计数器。在SQL Server 2000中,这些数据以一个叫做sysperfinfo的系统表格来表示,SQL Server 2005中也有这个表格,但仅用于向后兼容。将来的版本可能会删除这个表格。
要了解如何应用这个视图,而不是运行Windows性能监控器来获取系统信息,请运行列表B中的查询代码。这个查询将返回服务器当前时刻的缓存命中率(Buffer Cache Hit Ratio)。缓存命中率指在内存中所发现的SQL Server请求页面的百分比。如果服务器运转正常,这个值一般在90%以上。如果这个值低于90%,则意味着服务器将会去硬盘那里恢复数据页面,这可能是服务器需要更多内存的信号。
如果你为了同样的目的,准备运行上面的查询,并将得到的结果与运行Windows性能监控器显示的结果进行比较(SQL Server:缓冲器管理器缓存命中率),你会发现这些数据几乎是一样的。稍稍研究一下,就可以根据这个表格开发出你自己的脚本库,而不必总是运行Windows性能监控器。
Caveat:这个视图仅限于SQL Server相关的计数器使用。如果你希望获得SQL Server之外的数据,你还是要使用Windows性能监控器。
目录相关动态管理视图和函数
sys.dm_db_index_physical_stats:这个动态管理函数为数据表格和视图返回相关数据及目录信息。查看列表C。这个函数接受5个参数:数据库的ID、所讨论的表格或视图的ID、表格或视图上的一个特定目录的ID(被我忽略)、分区号(也被我忽略)和一个模式,我将它指定为“DETAILED”。将这些参数提交给这个函数会允许你查看DMVTest表格中的所有目录细节。
在前面定义的表格中运行列表C中的查询,你会发现表格中既没有页面也没有记录。在DMVTest中增加一条记录,再运行查询,就会发现表格中增加了一个页面。
INSERT INTO DMVTest(C2, C3)
VALUES(1,1)
这个函数返回的另一个特别有趣的域为avg_page_space_used_in_percent域,它说明数据页面有多大。从查询中发现数据页面约为0.25%。你可以应用这个数据来开发程序,查看数据库表格,并根据程序中设定的标准,重新为它们编写目录。
执行相关的动态管理视图和函数
sys.dm_exec_requests:这个视图显示发生在SQL Server实例中的每个请求的有关信息。当你研究服务器阻塞时,由此视图提供的信息特别有用。读、写、会话设置和 blocking_session_id是这个视图返回的一些有用数据。blocking_session_id栏指出系统上阻塞数据库请求的会话。稍后,我将举出一个例子,说明如何确定用户运行的阻塞请求的语句。
sys.dm_exec_sessions:SQL Server上每个得到验证的会话由它返回一行。在你希望找出连接到数据库服务器的所有用户时,可用到这个视图。它返回session_id、连接通过它建立会话执行的读和写的程序、以及其它一些会话设置。这个视图还包含一个叫做is_user_process的BIT域,在查询这个表格时你可能会用到它。数值1表示会话为用户会话而非系统定义的会话。
sys.dm_exec_sql_text:这是一个根据sql操作返回SQL Server语句的动态管理函数。对某些动态管理函数而言,SQL Server 2005将正在执行的sql语句以散列值存储。这个散列值可由sys.dm_exec_sql_text动态管理函数解析。但是,任何时候你希望将一个函数与另一个对象连接起来,并从表格或视图中提交一个域值时,就会需要用到新的APPLY运算符。SQL Server 2005以前的版本并不具备这一功能。(欲了解SQL Server 2005中APPLY运算符的详细信息,请参阅这篇文章。)
现在我们讨论一下如何应用这三个动态管理函数。列表D中的查询列举出数据库中所有当前用户请求执行的会话、阻塞会话、程序、主机和SQL Server语句。
注意正在使用dm_exec_sql_text函数,并从 sys.dm_exec_requests视图中提交sql_handle域。由sys.dm_exec_requests和 sys.dm_exec_sessions视图返回的每一行,都将调用sys.dm_exec_sql_text函数。
测试
对它们进行测试是学习这些新型动态管理对象的最佳方法。SQL Server在线书籍提供了使用这些对象的一些资料,但动手使用要比阅读学到更多内容。投入一点努力,你就会发现许多应用对象的新方法,不仅包括这个例子中列出的对象,还包括SQL Server 2005中的动态管理对象。
分享到:
相关推荐
SQL Server 2005管理对象 SMO 基础知识 列举服务器 连接到服务器 列举数据库 发出 DDL 或 DML 命令 遍历对象列表 备份数据库 恢复数据库 验证数据库备份 结束语
Microsoft SQL Server 2005 Backward Compatibility Components (Microsoft SQL Server 2005 向后兼容组件) SQL Server Backward Compatibility 包中包含最新版本的 Data Transformation Services 2000 运行时 (DTS)...
"SQLServer2005_SSMSEE.msi" 文件就是SQL Server 2005的System Management Studio Express(SSMSEE)的安装程序,这是一个简化版的SQL Server Management Studio,专为开发者和小型团队设计,提供基础的数据库管理和...
Microsoft SQL Server 2005 Backward Compatibility Components (Microsoft SQL Server 2005 向后兼容组件) SQL Server Backward Compatibility 包中包含最新版本的 ...X86 Package (SQLServer2005_BC.msi) - 11426 KB
5. **Management Studio**:一个集成的开发和管理环境,用于配置、监视和管理SQL Server实例,包括数据库、存储过程、触发器等所有对象。 安装SQL Server 2005时,你需要按照提示步骤进行,选择适合的组件进行安装...
例如,从 SQL Server 2005 升级到 SQL Server 2008 的过程中,如何将原有的 SQL Server 2005 数据库顺利附加到 SQL Server 2008 上就是一个常见的需求。本文将详细介绍如何在 SQL Server 2008 上成功附加 SQL Server...
SQLServer2005管理工具.msi这个文件很可能是安装SQL Server 2005管理工具的 MSI 安装程序。下载并运行此文件,按照向导提示完成安装,即可在本地计算机上安装和使用这些管理工具。 总结来说,SQL Server 2005管理...
标题中的"SQLServer2005_SSMSEE_x64.rar"表明这是一个关于Microsoft SQL Server 2005的管理工具,特别指出是64位版本,并且是压缩包文件。描述中的“2005 管理工具”进一步确认了这个文件是用于管理和维护SQL Server...
2. **Management Studio Express**:这是一个轻量级的数据库管理工具,允许用户连接到SQL Server实例,执行查询,管理数据库对象,并进行基本的数据库维护。 3. **SQL Server Books Online**:这是SQL Server的在线...
**SQL Server 2005系统管理实录** SQL Server 2005是微软公司推出的一款企业级数据库管理系统,广泛应用于数据存储、数据分析和业务处理。本教程以"Sql Server 2005系统管理实录"为主题,旨在帮助用户深入理解并...
5. 生成脚本后,可以将其导入到 SQL Server 2005 数据库中。 方法二:SQL Server 2008R2 数据库降级为 SQL Server 2005 这种方法通过降级 SQL Server 2008R2 数据库来将其转换为 SQL Server 2005 数据库。具体步骤...
如果你需要一个可视化界面来管理和操作数据库,就需要单独下载并安装SSMSEE的安装文件,例如提供的"SQLServer2005_SSMSEE.msi"。 安装SSMSEE的过程相对简单,只需要运行.msi安装文件,按照向导提示进行操作即可。...
这个压缩包包含四本关于SQL Server 2005的技术内幕书籍,分别聚焦于T-SQL查询、T-SQL程序设计、存储引擎以及查询、调整和优化,另外还附带了一本与.NET相关的文档,对于深入理解SQL Server 2005的各个方面有着重要的...
以上知识点总结了从SQL Server 2005升级到SQL Server 2008所需掌握的关键内容,并为数据库管理员和开发者提供了全面的技能提升路径。需要注意的是,升级过程可能因企业环境的不同而有所差异,因此建议在执行升级计划...
**SQLServer2005 JDBC驱动程序JAR包详解** SQLServer2005 JDBC驱动程序是用于在Java应用程序中连接到Microsoft SQL Server 2005数据库的关键组件。JDBC(Java Database Connectivity)是一种Java API,允许Java...
SQL Server Management Studio Express(SSMSEE)是微软提供的一个轻量级版本的SQL Server管理工具,主要用于管理和维护SQL Server数据库。这款2005年发布的32位版本,是为那些不需要完整版本的SQL Server ...
SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,而SQL Server 2005作为微软公司的一款强大的数据库管理系统,为开发者提供了广泛的功能和工具,使其在数据库管理和开发领域中占据重要地位...
"SQLServer2005_SSMSEE%2864位系统用%29.zip"这个压缩包显然包含了适用于64位操作系统的SSMSEE安装文件。 SSMSEE提供了用于管理SQL Server实例的基本工具集,包括查询编辑器、对象资源管理器以及报告服务等,使得...
总的来说,《SQL Server 2005管理员大全》是一本全面且深入的参考书籍,无论你是初学者还是经验丰富的管理员,都能从中获益匪浅,提升你的SQL Server管理技能。通过深入学习和实践,你可以有效地管理、维护和优化SQL...