描述动态管理视图和函数

已完成

SQL Server 提供几百个动态管理对象。 这些对象包含可用于监视服务器实例的运行状况、诊断故障以及优化性能的系统信息。 动态管理视图和函数返回有关数据库或实例状态的内部数据。 动态管理对象可以是视图 (DMV) 或函数 (DMF),但大多数人都使用首字母缩写词 DMV 来指代这两种类型的对象。

DMV 分为两个级别,即服务器范围和数据库范围。

  • 服务器范围对象 - 需要服务器上的 VIEW SERVER STATE 权限
  • 数据库范围对象 - 需要数据库中的 VIEW DATABASE STATE 权限

DMV 的名称均以 sys.dm_ 为前缀,后跟功能区域,然后是对象的特定函数。 SQL Server 支持三种类别的 DMV:

  • 与数据库相关的动态管理对象
  • 与查询执行相关的动态管理对象
  • 与事务相关的动态管理对象

若要了解用于监视服务器和数据库性能的查询,请参阅使用动态管理视图监视 Microsoft Azure SQL 数据库和 Azure SQL 托管实例性能

注意

对于查询存储不可用的较旧版本的 SQL Server,可以将视图 sys.dm_exec_cached_plans 与函数 sys.dm_exec_sql_textsys.dm_exec_query_plan 结合使用,以返回有关执行计划的信息。 但是,与查询存储不同,将不能查看给定查询的计划更改。

Azure SQL 数据库的可用 DMV 集与 SQL Server 相比略有不同;某些对象仅在 Azure SQL 数据库中可用,而其他对象仅在 SQL Server 中可用。 某些对象在服务器级别范围内,在 Azure 模型中不适用(下面的 waits_stats DMV 是服务器范围内的 DMV 的示例),而其他对象特定于 Azure SQL 数据库(如 sys.dm_db_resource_stats),并提供在 SQL Server 中不可用(或与之不相关)的特定于 Azure 的信息。