sys.dm_tran_top_version_generators (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Devuelve una tabla virtual para los objetos que producen la mayor parte de las versiones en el almacén de versiones. sys.dm_tran_top_version_generators devuelve las 256 longitudes de registro agregadas principales agrupadas por el database_id y rowset_id. sys.dm_tran_top_version_generators recupera datos consultando la tabla virtual dm_tran_version_store. sys.dm_tran_top_version_generators es una vista ineficaz para ejecutarse porque esta vista consulta el almacén de versiones y el almacén de versiones puede ser muy grande. Es recomendable utilizar esta función para encontrar los principales consumidores del almacén de versiones.

Nota:

Para llamarlo desde Azure Synapse Analytics o Analytics Platform System (PDW), use el nombre sys.dm_pdw_nodes_tran_top_version_generators. El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.

Sintaxis

  
sys.dm_tran_top_version_generators  

Tabla devuelta

Nombre de la columna Tipo de datos Descripción
database_id int Id. de la base de datos.

En Azure SQL Database, los valores son únicos dentro de una base de datos única o un grupo elástico, pero no dentro de un servidor lógico.
rowset_id bigint Id. del conjunto de filas.
aggregated_record_length_in_bytes int Suma de las longitudes de registro para cada par de database_id y rowset_id en el almacén de versiones.
pdw_node_id int Se aplica a: Azure Synapse Analytics, Sistema de la plataforma de análisis (PDW)

Identificador del nodo en el que se encuentra esta distribución.

Permisos

En SQL Server y SQL Managed Instance, requiere el permiso VIEW SERVER STATE.

En los objetivos de servicio de SQL Database Basic, S0 y S1, y para las bases de datos de grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador de Microsoft Entra o la pertenencia al rol de ##MS_ServerStateReader##servidor. En el resto de objetivos del servicio de SQL Database, se requiere el permiso VIEW DATABASE STATE en la base de datos o la pertenencia en el rol del servidor ##MS_ServerStateReader##.

Permisos para SQL Server 2022 y versiones posteriores

Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.

Comentarios

Dado que es posible que sys.dm_tran_top_version_generators tenga que leer muchas páginas a medida que examina todo el almacén de versiones, la ejecución de sys.dm_tran_top_version_generators puede interferir con el rendimiento del sistema.

Ejemplos

En el ejemplo siguiente se utiliza un escenario de prueba con cuatro transacciones simultáneas, identificadas con un número de secuencia de transacción (XSN), que se ejecutan en una base de datos con las opciones ALLOW_SNAPSHOT_ISOLATION y READ_COMMITTED_SNAPSHOT establecidas en ON. Se están ejecutando las siguientes transacciones:

  • XSN-57 es una operación de actualización con aislamiento serializable.

  • XSN-58 es igual que XSN-57.

  • XSN-59 es una operación de selección con aislamiento de instantáneas.

  • XSN-60 es igual que XSN-59.

Se ejecuta la siguiente consulta.

SELECT  
    database_id,  
    rowset_id,  
    aggregated_record_length_in_bytes  
  FROM sys.dm_tran_top_version_generators;  

El conjunto de resultados es el siguiente:

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

La salida muestra que todas las versiones se crean mediante database_id``9 y que las versiones generan a partir de dos tablas.

Consulte también

Funciones y vistas de administración dinámica (Transact-SQL)
Funciones y vistas de administración dinámica relacionadas con transacciones (Transact-SQL)