sys.dm_db_xtp_checkpoint_files (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Muestra información sobre los archivos de punto de control OLTP en memoria, incluido el tamaño del archivo, la ubicación física y el identificador de transacción.

Note

Para el punto de control actual que no se ha cerrado, la columna de estado de sys.dm_db_xtp_checkpoint_files será UNDER CONSTRUCTION para los nuevos archivos. Un punto de control se cierra automáticamente cuando hay suficiente crecimiento del registro de transacciones desde el último punto de control, o si emite el CHECKPOINT comando. Para más información, consulte CHECKPOINT (Transact-SQL).

Un grupo de archivos optimizados para memoria usa internamente archivos de solo anexión para almacenar filas insertadas y eliminadas para tablas en memoria. Hay dos tipos de archivos: Un archivo de datos contiene filas insertadas mientras que un archivo delta contiene referencias a filas eliminadas.

Para obtener más información, consulte Creación y administración del almacenamiento para objetos optimizados para memoria.

Nombre de la columna Tipo Descripción
container_id int Identificador del contenedor (representado como un archivo con el tipo FILESTREAM en sys.database_files) del que forman parte los datos o el archivo delta. Se une con file_id en sys.database_files (Transact-SQL).
container_guid uniqueidentifier GUID del contenedor, del que forma parte la raíz, los datos o el archivo delta. Combina con file_guid en la sys.database_files tabla.
checkpoint_file_id uniqueidentifier GUID del archivo de punto de control.
relative_file_path nvarchar(256) Ruta de acceso del archivo en relación con el contenedor al que se asigna.
file_type smallint -1 gratis

0 para el archivo DATA.

1 para el archivo DELTA.

2 para el archivo ROOT

3 para el archivo LARGE DATA
file_type_desc nvarchar(60) FREE- Todos los archivos mantenidos como GRATIS están disponibles para la asignación. Los archivos gratuitos pueden variar de tamaño en función de las necesidades previstas por el sistema. El tamaño máximo es de 1 GB.

DATOS: los archivos de datos contienen filas que se han insertado en tablas optimizadas para memoria.

DELTA: los archivos delta contienen referencias a filas de archivos de datos que se han eliminado.

ROOT: los archivos raíz contienen metadatos del sistema para objetos optimizados para memoria y compilados de forma nativa.

DATOS GRANDES: los archivos de datos grandes contienen valores insertados en las columnas (n)varchar(max) y varbinary(max), así como los segmentos de columna que forman parte de los índices de almacén de columnas en tablas optimizadas para memoria.
internal_storage_slot int El índice del archivo en la matriz de almacenamiento interno. NULL para ROOT o para el estado distinto de 1.
checkpoint_pair_file_id uniqueidentifier Archivo DATA o DELTA correspondiente. NULL para ROOT.
file_size_in_bytes bigint Tamaño del archivo en el disco.
file_size_used_in_bytes bigint 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.
logical_row_count bigint En Datos, número de filas insertadas.

En Delta, número de filas eliminadas después de contabilizar la tabla de eliminación.

En Raíz, NULL.
state smallint 0 - PRECREADO

1 - EN CONSTRUCCIÓN

2 - ACTIVO

3 - MERGE OBJETIVO

8 - ESPERANDO TRUNCAMIENTO DEL REGISTRO
state_desc nvarchar(60) PRECREATED: se asigna previamente un número de archivos de punto de control para minimizar o eliminar las esperas para asignar nuevos archivos a medida que se ejecutan las transacciones. Estos archivos pueden variar de tamaño y se crean en función de las necesidades estimadas de la carga de trabajo. No contienen datos. Se trata de una sobrecarga de almacenamiento en bases de datos con un grupo de archivos MEMORY_OPTIMIZED_DATA.

UNDER CONSTRUCTION: estos archivos de punto de control están en construcción, lo que significa que se rellenan en función de los registros generados por la base de datos y aún no forman parte de un punto de control.

ACTIVE: contienen las filas insertadas o eliminadas de los puntos de control cerrados anteriores. Contienen el contenido de las tablas que el área lee en memoria antes de aplicar la parte activa del registro de transacciones al reiniciar la base de datos. Esperamos que el tamaño de estos archivos de punto de control sea aproximadamente 2x del tamaño en memoria de las tablas optimizadas para memoria, suponiendo que la operación de combinación se mantenga al día con la carga de trabajo transaccional.

MERGE TARGET - El objetivo de las operaciones de fusión: estos archivos de puntos de control almacenan las filas de datos consolidadas de los archivos fuente identificados por la política de fusión. Una vez instalada la fusión, el MERGE TARGET pasa al estado ACTIVO.

ESPERANDO TRUNCAMIENTO DE LOG - Una vez instalada la fusión y el MERGE CFP TARGET forma parte de un punto de control duradero, los archivos de punto de control fuente de la fusión pasan a este estado. Los archivos de este estado son necesarios para la corrección operativa de la base de datos con una tabla optimizada para memoria. Por ejemplo, para recuperarse de un punto de comprobación durable para ir a un momento anterior en el tiempo.
lower_bound_tsn bigint Límite inferior de la transacción en el archivo; NULL si el estado no está en (1, 3).
upper_bound_tsn bigint Límite superior de la transacción en el archivo; NULL si el estado no está en (1, 3).
begin_checkpoint_id bigint Id. del punto de control de inicio.
end_checkpoint_id bigint Id. del punto de control final.
last_updated_checkpoint_id bigint Identificador del último punto de control que actualizó este archivo.
encryption_status smallint 0, 1, 2
encryption_status_desc nvarchar(60) 0 => SIN CIFRAR

1 => CIFRADO CON CLAVE 1

2 => CIFRADO CON CLAVE 2. Válido solo para archivos activos.

Permissions

Requiere permiso VIEW DATABASE STATE en la base de datos.

Permisos para SQL Server 2022 y versiones posteriores

Requiere VIEWDATABASE permiso de ESTADO DE RENDIMIENTO en la base de datos.

Casos de uso

Puede calcular el almacenamiento total utilizado por OLTP en memoria de la siguiente manera:

-- total storage used by In-Memory OLTP  
SELECT SUM (file_size_in_bytes)/(1024*1024) as file_size_in_MB  
FROM sys.dm_db_xtp_checkpoint_files;

Para ver un desglose del uso del almacenamiento por estado y tipo de archivo, ejecute la consulta siguiente:

SELECT state_desc  
 , file_type_desc  
 , COUNT(*) AS [count]  
 , SUM(file_size_in_bytes) / 1024 / 1024 AS [on-disk size MB]   
FROM sys.dm_db_xtp_checkpoint_files  
GROUP BY state, state_desc, file_type, file_type_desc  
ORDER BY state, file_type;