sys.dm_tran_top_version_generators

更新日期: 2005 年 12 月 5 日

为生成版本存储区中大多数版本的对象返回一个虚拟表。sys.dm_tran_top_version_generators 返回按 database_idrowset_id 分组的前 256 个聚合记录的长度。sys.dm_tran_top_version_generators 通过查询 dm_tran_version_store 虚拟表来检索数据。由于 sys.dm_tran_top_version_generators 视图查询版本存储区,而该版本存储区可能很大,因此该视图的运行效率很低。建议使用此函数查找版本存储区的最大使用者。

语法

sys.dm_tran_top_version_generators

返回的表

列名 数据类型 说明

database_id

int

数据库 ID。

rowset_id

bigint

行集 ID。

aggregated_record_length_in_bytes

int

版本存储区中每个 database_idrowset_id 对的记录长度的和。

备注

由于 sys.dm_tran_top_version_generators 在扫描整个版本存储区时可能必须读取很多页,因此运行 sys.dm_tran_top_version_generators 可能会影响系统性能。

权限

需要对服务器具有 VIEW SERVER STATE 权限。

示例

下面的示例使用具有四个并发事务的测试方案,每一个事务都由事务序列号 (XSN) 标识,并在 ALLOW_SNAPSHOT_ISOLATION 和 READ_COMMITTED_SNAPSHOT 选项设置为 ON 的数据库中运行。下列事务正在运行:

  • XSN-57 是序列化隔离下的更新操作。
  • XSN-58 与 XSN-57 相同。
  • XSN-59 是快照隔离下的选择操作。
  • XSN-60 与 XSN-59 相同。

执行以下查询。

SELECT
    database_id,
    rowset_id,
    aggregated_record_length_in_bytes
  FROM sys.dm_tran_top_version_generators;

下面是结果集:

database_id rowset_id            aggregated_record_length_in_bytes
----------- -------------------- ---------------------------------
9           72057594038321152    87
9           72057594038386688    33

输出显示由 database_id``9 创建的所有版本,并显示版本通过两个表生成。

请参阅

参考

动态管理视图和函数
与事务有关的动态管理视图和函数

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本

历史记录

2005 年 12 月 5 日

主题

定义

**新增内容:**添加了一个示例。