sys.dm_tran_top_version_generators (Transact-SQL)
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 mayores longitudes de registro agregadas que se agrupan por database_id y rowset_id. sys.dm_tran_top_version_generators recupera datos consultando la tabla virtual dm_tran_version_store. No es eficaz ejecutar sys.dm_tran_top_version_generators, ya que consulta el almacén de versiones y éste puede ser muy grande. Es recomendable utilizar esta función para encontrar los principales consumidores del almacén de versiones.
Sintaxis
sys.dm_tran_top_version_generators
Tabla devuelta
Nombre de columna |
Tipo de datos |
Descripción |
---|---|---|
database_id |
int |
Id. de la base de datos. |
rowset_id |
bigint |
Id. del conjunto de filas. |
aggregated_record_length_in_bytes |
int |
Suma de las longitudes de los registros para cada par de valores database_id y rowset_id existente en el almacén de versiones. |
Permisos
Requiere el permiso VIEW SERVER STATE en el servidor.
Comentarios
Como sys.dm_tran_top_version_generators podría tener que leer muchas páginas, ya que recorre el almacén de versiones completo, la ejecución de sys.dm_tran_top_version_generators puede afectar al 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
En la salida se muestra que todas las versiones son creadas por database_id9 y que las versiones se generan a partir de dos tablas.