sys.dm_tran_top_version_generators (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 Básico, S0 y S1 de SQL Database y para bases de datos en grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador Microsoft Entra o la pertenencia al ##MS_ServerStateReader##
rol del 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;
Este es el conjunto de resultados.
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)