深入了解SQLServer動态管理视图.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入了解SQLServer動态管理视图

随着SQL Server 2005版本的发布,带来了一种新的用于访问系统和数据库信息的方式,而无需创建复杂的查询或直接访问系统表。通过使用SQL Server动态管理视图(DMVs),你可以查看SQL Server的实例信息,比如实例运行在什么系统上、实例中有那些数据库。   你可以在Transact-SQL语句中引用你想要查看的视图名称来调用DMVs。所有的DMVs都存放在SYS架构中,这个预定义架构包含了系统视图。它们以字符dm_开头,如sys.dm_os_hosts。   与其他类型的视图一样,SQL Server DMVs返回一个指定数据类型的列集合。但是,一个DMV的架构会随着SQL Server版本的变化而变化。因此,当编写调用DMV的代码时,你应该指定列名而不是使用类似SELECT * FROM view_name之类的语法。   SQL Server动态管理视图可分为两大类:一类是描述数据库级别的信息,另一类是描述服务器级别的信息。在本文中,我将演示如何使用前者,后者我将会在以后的文章中加以阐述。本文例子所使用的系统环境是一个创建在本地的SQL Server 2008实例。例子中引用的数据库是AdventureWorks 2008示例数据库,除了一个例子使用了SQL Server Reporting Services数据库。对于每一个例子,我都会列出语句运行的结果集。很可能你的结果集会有所不同,这取决于你在哪种系统上运行SQL Server以及如何修改数据库的。   与数据库相关的SQL Server DMVs   我们查看的第一个SQL Server DMV是sys.dm_db_partition_stats,它返回当前数据库中的分区信息,每个分区一行。(如果一个索引、一个堆或者一个没有索引的表未被分区,它被认为是一个分区。)该视图返回的信息包括分区使用的页面数量和总行数。在下面的SELECT语句中,我使用这个DMV来获取AdventureWorks 2008数据库中Production.Product表的分区信息:   USE?AdventureWorks2008;   GO   SELECT   index_id?AS?IndexID,   partition_number?AS?PartitionNum,   used_page_count?AS?UsedPageCount,   row_count?AS?TotalRows   FROM   sys.dm_db_partition_stats   WHERE   object_id?=?OBJECT_ID(Production.Product)   ORDER?BY   IndexID,   PartitionNum;   如语句所示,sys.dm_db_partition_stats动态管理视图返回的信息首先是索引或堆的识别号然后是分区号。换句话说,定义的分区号与特定的索引或堆相关,所以每个索引或堆可以有一个或多个分区。(这个分区号不同于数据库分配给每个分区的独一无二的分区ID。)   紧接着索引ID和分区号,还将返回该分区的页面总数和使用的总行数,结果如下表所示: IndexID ParitionNum UsedPageCount TotalRows 1 1 15 504 2 1 4 504 3 1 5 504 4 1 4 504   如上表所示,在PRODUCT表中每个索引或堆都只有一个分区,每个分区有504行。   接下来的动态管理视图,我会介绍sys.dm_sql_referenced_entities。该视图返回指定对象所引用的用户定义的数据库对象集合,每个对象一行。例如,如果一个存储过程引用了用户定义的表,则动态管理视图将为每个表返回一行。 实际上,sys.dm_sql_referenced_entities并不是一个视图,它是一个函数。在下面的SELECT语句中,我使用sys.dm_sql_referenced_entities函数来检索触发器iuPerson所引用的对象列表,如下所示:   USE?AdventureWorks2008;   GO?SELECT?referenced_schema_name?AS?SchemaName,   referenced_entity_name?AS?EntityName,   referenced_class_desc?AS?ClassName   FROM?sys.dm_sql_referenced_entities   (Person.iuPerson,?OBJECT)   ORDER?BY   SchemaName,   Entity

文档评论(0)

d47fv82b5hI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档