Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Muestra información sobre los archivos de puntos de comprobación, incluidos el tamaño de archivo, la ubicación física y el identificador de transacción.
Nota
Para el punto de comprobación actual que no se ha cerrado, la columna de estado de sys.dm_db_xtp_checkpoint_files contendrá UNDER CONSTRUCTION para los nuevos archivos.Un punto de comprobación se cierra automáticamente cuando el registro de transacciones aumenta 512 MB desde el último punto de comprobación o si emite el comando CHECKPOINT (CHECKPOINT (Transact-SQL)).
Un grupo de archivos con optimización para memoria utiliza internamente archivos FILESTREAM para almacenar las filas insertadas y las eliminadas para las tablas en memoria. Hay dos tipos de archivos: Un archivo de datos contiene las filas insertadas mientras que un archivo delta contiene las filas eliminadas. Cada archivo de datos se reserva un tamaño de 128 MB pero puede ser mayor si hay una transacción de larga duración o cuando una mezcla manual obliga a que el archivo de destino resultante sea mayor de 128 MB.
Para obtener más información, vea Crear y administrar el almacenamiento de objetos con optimización para memoria.
Se aplica a: SQL Server (desde SQL Server 2014 hasta la versión actual). |
Nombre de columna |
Tipo |
Descripción |
|---|---|---|
container_id |
int |
Identificador del contenedor (representado como un archivo de tipo FILESTREAM en sys.database_files) del que forma parte el archivo de datos o delta. Combinaciones con file_id en sys.database_files (Transact-SQL). |
container_guid |
uniqueidentifier |
GUID del contenedor del que forma parte el archivo de datos o delta. |
checkpoint_file_id |
GUID |
Identificador del archivo de datos o delta. |
relative_file_path |
nvarchar(256) |
Ruta de acceso al archivo de datos o delta, con respecto a la ubicación del contenedor. |
file_type |
tinyint |
0 para el archivo de datos. 1 para el archivo delta. Es NULL si la columna state está establecida en 6. |
file_type_desc |
nvarchar(60) |
Tipo de archivo: DATA_FILE, DELTA_FILE o NULL si la columna state está establecida en 6. |
internal_storage_slot |
int |
El índice del archivo en la matriz de almacenamiento interno. Es NULL si la columna state está establecida en 2 o 3. Es NULL si un par de archivos de punto de comprobación tiene el estado 1 -- UNDER CONSTRUCTION. |
checkpoint_pair_file_id |
uniqueidentifier |
Archivo de datos o delta correspondiente. |
file_size_in_bytes |
bigint |
Tamaño del archivo que se usa. Es NULL si la columna state está establecida en 4, 5 o 6. |
file_size_used_in_bytes |
bigint |
Tamaño usado del archivo que se emplea. Es NULL si la columna state está establecida en 4, 5 o 6. Para los pares de archivos de punto de comprobación que todavía se están llenando, esta columna se actualizará después del punto de comprobación siguiente. |
inserted_row_count |
bigint |
Número de filas del archivo de datos. |
deleted_row_count |
bigint |
Número de filas eliminadas del archivo delta. |
drop_table_deleted_row_count |
bigint |
Número de filas de los archivos de datos afectados por una operación de quitar tabla. Se aplica a los archivos de datos cuando la columna state es igual a 1. Muestra los números de filas eliminadas de las tablas quitadas. Las estadísticas drop_table_deleted_row_count se compilan una vez que se completa la recolección de elementos no utilizados de memoria de las filas de las tablas quitadas y cuando se toma un punto de comprobación. Si reinicia SQL Server antes de que las estadísticas de tablas quitadas se reflejen en esta columna, se actualizarán las estadísticas como parte de la recuperación. El proceso de recuperación no carga filas de tablas quitadas. Las estadísticas de tablas quitadas se compilan durante la fase de carga y se muestran en esta columna cuando se completa la recuperación. |
state |
int |
0 – PRECREATED 1 – UNDER CONSTRUCTION 2 - ACTIVE 3 – MERGE TARGET 4 – MERGED SOURCE 5 – REQUIRED FOR BACKUP/HA 6 – IN TRANSITION TO TOMBSTONE 7 – TOMBSTONE |
state_desc |
nvarchar(60) |
|
lower_bound_tsn |
bigint |
El límite inferior de las transacciones contenidas en el archivo. Es NULL si la columna state no tiene el valor 1. |
upper_bound_tsn |
bigint |
El límite superior de las transacciones contenidas en el archivo. Es NULL si la columna state no tiene el valor 1. |
last_backup_page_count |
int |
Recuento de páginas lógicas que se determina en la última copia de seguridad. Se aplica cuando la columna state está establecida en 0, 1 o 2. Es NULL si no se conoce el recuento de páginas. |
delta_watermark_tsn |
int |
Transacción del último punto de comprobación que escribió en este archivo delta. Es el límite para el archivo delta. |
last_checkpoint_recovery_lsn |
nvarchar(23) |
Número de secuencia de registro de recuperación del último punto de comprobación que todavía necesita el archivo. |
tombstone_operation_lsn |
nvarchar(23) |
El archivo se eliminará una vez que tombstone_operation_lsn esté detrás del número de secuencia de registro del truncamiento del registro. |
logical_deletion_log_block_id |
bigint |
Es NULL, a menos que la columna state sea 6. |
Permisos
Requiere el permiso VIEW DATABASE STATE en el servidor.
Casos de uso
Puede calcular el almacenamiento utilizado por las tablas en memoria como sigue:
-- total storage used by in-memory tables
select sum (file_size_in_bytes)/(1024*1024) as file_size_in_MB
from sys.dm_db_xtp_checkpoint_files
where internal_storage_slot is not NULL
Puede calcular el espacio disponible en cada archivo con la consulta siguiente.
Observe la columna percent_full. OLTP en memoria utiliza una heurística para identificar la última transacción del archivo de datos. Según el número de filas modificadas por la transacción, el porcentaje completo puede variar. El espacio rellenado de un archivo de datos también puede verse afectado si se efectuó un punto de comprobación que ocasionara que este archivo se cerrase. También puede ver un archivo de datos sin filas. Esto puede ser ocasionado por punto de comprobación manual después de eliminar las filas y antes de que las filas se agreguen.
select *,
str((convert
(float, (file_size_used_in_bytes * (1 - convert (float, deleted_rows)/inserted_rows)))/file_size_in_bytes),
25, 2) as percent_full
from
(
select t.internal_storage_slot, file_size_in_bytes, file_size_used_in_bytes,
(case when inserted_row_count= 0 then 1
when inserted_row_count > 0 then inserted_row_count end) as inserted_rows,
(select deleted_row_count
from sys.dm_db_xtp_checkpoint_files
where internal_storage_slot = t.internal_storage_slot and file_type=1) as deleted_rows
from sys.dm_db_xtp_checkpoint_files as t
where internal_storage_slot is not NULL and file_type=0) as t_t
order by internal_storage_slot
SQL Server permite hasta 8.192 pares de archivos delta y de datos. Para ver el número de pares activos de archivos delta y de datos, use la consulta siguiente.
-- total number of data and delta file pairs
select count (*)
from sys.dm_db_xtp_checkpoint_files
where internal_storage_slot is not NULL and file_type = 0
Para calcular el porcentaje de almacenamiento total utilizado:
declare @deleted_row_count int;
declare @inserted_row_count int;
declare @effective_row_percentage float
-- get the total deleted row counts by looking at active delta files
select @deleted_row_count = SUM (deleted_row_count)
from sys.dm_db_xtp_checkpoint_files
where state = 2 and file_type = 1
-- get total inserted row count by looking at active data files
select @inserted_row_count = SUM (inserted_row_count)
from sys.dm_db_xtp_checkpoint_files
where state = 2 and file_type = 0
-- get the effective % of active rows after accounting for the deleted rows
-- This number represents the potential space that can be freed up if deleted are removed from storage
select @effective_row_percentage = (1 - convert (float, @deleted_row_count)/@inserted_row_count)
-- Compute the effective usage fill factor for the storage.
-- Effective fill factor computes the effective free space in data files
-- on average after accounting for the deleted rows
-- This should be >= 50% otherwise it is an indication that auto-merge is not keeping up
select
str (convert (varchar(100), ((SUM (file_size_used_in_bytes)*@effective_row_percentage)/SUM (file_size_in_bytes)) *100 ),5, 2)
as [storage usage fill factor]
from sys.dm_db_xtp_checkpoint_files
where state = 2 and file_type = 0
Vea también
Conceptos
Vistas de administración dinámica de tablas con optimización para memoria (Transact-SQL)