当前位置:首页 > 系统运维 > 正文内容

5个SQL Server 2005 动态管理对象有哪些?

a8116255316年前 (2010-07-19)系统运维8

此文章主要向大家讲述的是5个SQL Server 2005 动态管理对象,SQL Server 2005数据库的新功能是动态管理对象,主要是在指定的时间来返回某个数据库的实例特殊状态信息的数据库视图或是函数。

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

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

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

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

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

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动态管理函数解析。

但是,任何时候你希望将一个函数与另一个对象连接起来,并从表格或视图中提交一个域值时,就会需要用到新的APP *** 运算符。SQL Server 2005以前的版本并不具备这一功能。(欲了解SQL Server 2005中APP *** 运算符的详细信息,请参阅该文。)

现在我们讨论一下如何应用这三个动态管理函数。列表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 2005 动态管理对象的更佳 *** 。SQL Server在线书籍提供了使用这些对象的一些资料,但动手使用要比阅读学到更多内容。投入一点努力,你就会发现许多应用对象的新 *** ,不仅包括这个例子中列出的对象,还包括SQL Server 2005中的动态管理对象。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/22064.html

分享给朋友:

“5个SQL Server 2005 动态管理对象有哪些?” 的相关文章

windows 7系统如何设置休眠时不断网以便继续完成下载

windows 7系统如何设置休眠时不断网以便继续完成下载

在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...

微软今天正式停止对windows 7的主流支持

微软今天正式停止对windows 7的主流支持

北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...

windows 7系统开机后出现黑屏提示Windows无法启动

windows 7系统开机后出现黑屏提示Windows无法启动

一些用户的Windows 7系统开机后出现黑屏,代码为 Windows无法启动: WindowsSystem32ConfigSystem”。这个问题该如何修复呢?现在小编就给大家分析一下吧。 其实这个代码的意思是引导文件丢失了,引导文件(NTLDR)一般存放于C盘根目录下,是一个具有隐藏和只读属性...

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...

Ubuntu 14.10上安装新的字体图文教程

Ubuntu 14.10上安装新的字体图文教程

像Ubuntu这种开源系统,一般都自带有好多漂亮的字体,不过假如您想使用您熟悉的字体,可以通过在Ubuntu或其它Linux系统上安装字体,帮助用户在使用开源OS平台上更好的视图体验。 软件名称:Ubuntu 14.04 官方正式版软件大小:752MB更新时间:2014-05-07 Ubun...

windows 7怎么设置密码永不过期?

windows 7怎么设置密码永不过期?

下面小编以Windows 7 64位为例,介绍下密码是如何设置永不过期的。  1、在桌面上打开“开始”菜单,或者点击“Win+R”快捷键将“运行”对话框打开。  2、运行对话框打开后,在里面中输入“lusrmgr.msc”字符命令,就可以打开“本地用户和组程序”。...