sys.dm_db_xtp_checkpoint_files (Transact-SQL)
Se aplica a: SQL ServerAzure SQL Database Azure SQL Instancia administrada
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.
Nota:
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.
SQL Server 2014 (12.x) es sustancialmente diferente de las versiones más recientes y se describe en SQL Server 2014.
Para obtener más información, consulte Creación y administración del almacenamiento para objetos optimizados para memoria.
SQL Server 2016 (13.x) y posterior
En la tabla siguiente se describen las columnas de sys.dm_db_xtp_checkpoint_files
, a partir de SQL Server 2016 (13.x).
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. |
estado | smallint | 0 - PRECREADO 1 - EN CONSTRUCCIÓN 2 - ACTIVE 3 - MERGE TARGET 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 destino de las operaciones de combinación: estos archivos de punto de control almacenan las filas de datos consolidadas de los archivos de origen identificados por la directiva de combinación. Una vez instalada la mezcla, TARGET MERGE cambia al estado ACTIVE. ESPERANDO TRUNCAMIENTO DE REGISTRO: una vez instalada la combinación y merge TARGET CFP forma parte de un punto de control duradero, los archivos de punto de comprobación de origen de mezcla 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. |
SQL Server 2014 (12.x)
En la tabla siguiente se describen las columnas para sys.dm_db_xtp_checkpoint_files
, para SQL Server 2014 (12.x).
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 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. NULL si la columna de estado está establecida en 7. |
file_type_desc | nvarchar(60) | Tipo de archivo: DATA_FILE, DELTA_FILE o NULL si la columna de estado está establecida en 7. |
internal_storage_slot | int | El índice del archivo en la matriz de almacenamiento interno. NULL si la columna de estado no es 2 o 3. |
checkpoint_pair_file_id | uniqueidentifier | Archivo de datos o delta correspondiente. |
file_size_in_bytes | bigint | Tamaño del archivo que se usa. NULL si la columna de estado está establecida en 5, 6 o 7. |
file_size_used_in_bytes | bigint | Tamaño usado del archivo que se emplea. NULL si la columna de estado está establecida en 5, 6 o 7.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 las tablas desplegables se reflejen en esta columna, las estadísticas se actualizarán 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. |
estado | int | 0 - PRECREADO 1 - EN CONSTRUCCIÓN 2 - ACTIVE 3 - MERGE TARGET 4 - ORIGEN COMBINADO 5 - NECESARIO PARA COPIA DE SEGURIDAD/ALTA DISPONIBILIDAD 6 - EN TRANSICIÓN A TOMBSTONE 7 - TOMBSTONE |
state_desc | nvarchar(60) | PRECREATED: un pequeño conjunto de pares de archivos delta y de datos, también conocidos como pares de archivos de punto de control (CFP) se mantienen previamente asignados para minimizar o eliminar las esperas para asignar nuevos archivos a medida que se ejecutan las transacciones. Se crean con un tamaño de archivo de datos de 128 MB y un tamaño de archivo delta de 8 MB, pero no contienen datos. El número de CFP se calcula como el número de procesadores o programadores lógicos (uno por núcleo, sin valor máximo) con un mínimo de 8. Se trata de una sobrecarga de almacenamiento fija en bases de datos con tablas optimizadas para memoria. UNDER CONSTRUCTION: conjunto de CFP que almacenan filas de datos recién insertadas y posiblemente eliminadas desde el último punto de control. ACTIVE: contienen las filas insertadas y eliminadas de puntos de comprobación cerrados anteriores. Estos CFP contienen todas las filas insertadas y eliminadas necesarias antes de aplicar la parte activa del registro de transacciones en el reinicio de la base de datos. El tamaño de estos CFP será aproximadamente dos veces el tamaño en memoria de las tablas optimizadas para memoria, suponiendo que la operación de combinación esté actualizada con la carga de trabajo transaccional. MERGE TARGET: el CFP almacena las filas de datos consolidadas de los CFP identificados por la directiva de mezcla. Una vez instalada la mezcla, TARGET MERGE cambia al estado ACTIVE. ORIGEN COMBINADO: una vez instalada la operación de combinación, los CFP de origen se marcan como ORIGEN COMBINADO. Tenga en cuenta que el evaluador de directivas de mezcla podría identificar varias combinaciones, pero un CFP solo puede participar en una operación de combinación. OBLIGATORIO PARA BACKUP/HA: una vez instalada la combinación y merge TARGET CFP forma parte de un punto de control duradero, los CFP de origen de mezcla pasan a este estado. Los CFP que están en este estado son necesarios para el correcto funcionamiento de la base de datos con tablas optimizadas para memoria. Por ejemplo, para recuperarse de un punto de comprobación durable para ir a un momento anterior en el tiempo. Un CFP se puede marcar para la recolección de elementos no utilizados una vez que el punto de truncamiento del registro sobrepasa los límites de su intervalo de transacción. IN TRANSITION TO TOMBSTONE: estos CFP no son necesarios para el motor OLTP en memoria y pueden ser recolectores de elementos no utilizados. Este estado indica que estos CFP están esperando que el subproceso de fondo haga la transición al estado siguiente, que es TOMBSTONE. TOMBSTONE: estos CFP están esperando ser recolectores de elementos no utilizados por el recolector de elementos no utilizados de la secuencia de archivos. (sp_filestream_force_garbage_collection (Transact-SQL)) |
lower_bound_tsn | bigint | El límite inferior de las transacciones contenidas en el archivo. NULL si la columna de estado es distinta de 2, 3 o 4. |
upper_bound_tsn | bigint | El límite superior de las transacciones contenidas en el archivo. NULL si la columna de estado es distinta de 2, 3 o 4. |
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 2, 3, 4 o 5. 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 | Solo se aplica al estado 5. |
Permisos
Debe tener el permiso VIEW DATABASE STATE
para la base de datos.
Permisos para SQL Server 2022 y versiones posteriores
Requiere el permiso VIEW DATABASE PERFORMANCE STATE 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;
Contenido relacionado
- Introducción a las tablas con optimización para memoria
- Vistas de administración dinámica de tablas optimizadas para memoria
- Información general y escenarios de uso de OLTP en memoria
- Optimización del rendimiento mediante tecnologías en memoria en Azure SQL Database
- Optimización del rendimiento mediante tecnologías en memoria en Azure SQL Instancia administrada