sys.dm_db_xtp_checkpoint_files (Transact-SQL)

Aplica-se a: SQL ServerBanco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Exibe informações sobre arquivos de ponto de verificação OLTP na memória, incluindo tamanho do arquivo, localização física e ID da transação.

Observação

Para o ponto de verificação atual que não foi fechado, a coluna de estado de sys.dm_db_xtp_checkpoint_files estará EM CONSTRUÇÃO para novos arquivos. Um ponto de verificação é fechado automaticamente quando há crescimento suficiente do log de transações desde o último ponto de verificação ou se você emitir o CHECKPOINT comando. Para obter mais informações, confira CHECKPOINT (Transact-SQL).

Um grupo de arquivos com otimização de memória usa internamente arquivos somente acréscimo para armazenar linhas inseridas e excluídas para tabelas na memória. Existem dois tipos de arquivos. Um arquivo de dados contém linhas inseridas, enquanto um arquivo delta contém referências a linhas excluídas.

O SQL Server 2014 (12.x) é substancialmente diferente das versões mais recentes e é discutido no SQL Server 2014.

Para obter mais informações, consulte Criando e gerenciando armazenamento para objetos com otimização de memória.

SQL Server 2016 (13.x) e posterior

A tabela a seguir descreve as colunas do sys.dm_db_xtp_checkpoint_files, começando com SQL Server 2016 (13.x).

Nome da coluna Type Descrição
container_id int A ID do contêiner (representado como um arquivo com o tipo FILESTREAM em sys.database_files) do qual o arquivo de dados ou delta faz parte. Junta-se com file_id no sys.database_files (Transact-SQL).
container_guid uniqueidentifier GUID do Contêiner, do qual o arquivo raiz, de dados ou delta faz parte. Junta-se com file_guid na sys.database_files tabela.
checkpoint_file_id uniqueidentifier GUID do arquivo de ponto de verificação.
relative_file_path nvarchar(256) Caminho do arquivo em relação ao contêiner para o qual ele é mapeado.
file_type smallint -1 de graça

0 para o arquivo DATA.

1 para arquivo DELTA.

2 para arquivo ROOT

3 para arquivo LARGE DATA
file_type_desc nvarchar(60) GRÁTIS- Todos os arquivos mantidos como GRATUITOS estão disponíveis para alocação. Os arquivos gratuitos podem variar em tamanho, dependendo das necessidades previstas pelo sistema. O tamanho máximo é de 1 GB.

DATA - Os arquivos de dados contêm linhas que foram inseridas em tabelas com otimização de memória.

DELTA - Os arquivos delta contêm referências a linhas em arquivos de dados que foram excluídos.

ROOT - Os arquivos raiz contêm metadados do sistema para objetos com otimização de memória e compilados nativamente.

DADOS GRANDES - Arquivos de dados grandes contêm valores inseridos em colunas (n)varchar(max) e varbinary(max), bem como os segmentos de coluna que fazem parte de índices columnstore em tabelas com otimização de memória.
internal_storage_slot int O índice do arquivo na matriz de armazenamento interna. NULL para ROOT ou para estado diferente de 1.
checkpoint_pair_file_id uniqueidentifier Arquivo DATA ou DELTA correspondente. NULL para ROOT.
file_size_in_bytes bigint Tamanho do arquivo no disco.
file_size_used_in_bytes bigint Para os pares de arquivos de ponto de verificação que ainda estão sendo populados, essa coluna será atualizada após o próximo ponto de verificação.
logical_row_count bigint Para Dados, número de linhas inseridas.

Para Delta, número de linhas excluídas após a contabilização da tabela de descarte.

Para raiz, NULL.
estado smallint 0 - PRÉ-CRIADO

1 - EM CONSTRUÇÃO

2 - ATIVO

3 - MESCLAR DESTINO

8 - AGUARDANDO TRUNCAMENTO DE LOG
state_desc nvarchar(60) PRECREATED - Vários arquivos de ponto de verificação são pré-alocados para minimizar ou eliminar quaisquer esperas para alocar novos arquivos à medida que as transações estão sendo executadas. Esses arquivos podem variar em tamanho e são criados dependendo das necessidades estimadas da carga de trabalho. Eles não contêm dados. Essa é uma sobrecarga de armazenamento em bancos de dados com um MEMORY_OPTIMIZED_DATA grupo de arquivos.

EM CONSTRUÇÃO - Esses arquivos de ponto de verificação estão em construção, o que significa que estão sendo preenchidos com base nos registros de log gerados pelo banco de dados e ainda não fazem parte de um ponto de verificação.

ACTIVE - Contêm as linhas inseridas/excluídas de pontos de verificação fechados anteriores. Eles contêm o conteúdo das tabelas que são lidas na memória antes de aplicar a parte ativa do log de transações na reinicialização do banco de dados. Esperamos que o tamanho desses arquivos de ponto de verificação seja aproximadamente 2x maior do tamanho na memória das tabelas com otimização de memória, supondo que a operação de mesclagem esteja acompanhando a carga de trabalho transacional.

MERGE TARGET - O destino das operações de mesclagem - esses arquivos de ponto de verificação armazenam as linhas de dados consolidadas dos arquivos de origem que foram identificados pela política de mesclagem. Assim que a mesclagem for instalada, a opção MESCLAR DESTINO entrará no estado ATIVO.

AGUARDANDO TRUNCAMENTO DE LOG - Depois que a mesclagem tiver sido instalada e o CFP DE DESTINO DE MESCLAGEM fizer parte do ponto de verificação durável, os arquivos de ponto de verificação de origem de mesclagem farão a transição para esse estado. Os arquivos nesse estado são necessários para a correção operacional do banco de dados com a tabela com otimização de memória. Por exemplo, restaurar de um ponto de verificação durável para voltar no tempo.
lower_bound_tsn bigint Limite inferior da transação no arquivo; NULL se declarar não em (1, 3).
upper_bound_tsn bigint Limite superior da transação no arquivo; NULL se declarar não em (1, 3).
begin_checkpoint_id bigint ID do ponto de verificação inicial.
end_checkpoint_id bigint ID do ponto de verificação final.
last_updated_checkpoint_id bigint ID do último ponto de verificação que atualizou este arquivo.
encryption_status smallint 0, 1, 2
encryption_status_desc nvarchar(60) 0 => NÃO CRIPTOGRAFADO

1 => CRIPTOGRAFADO COM A CHAVE 1

2 => CRIPTOGRAFADO COM A CHAVE 2. Válido apenas para arquivos ativos.

SQL Server 2014 (12.x)

A tabela a seguir descreve as colunas do sys.dm_db_xtp_checkpoint_files, para SQL Server 2014 (12.x).

Nome da coluna Type Descrição
container_id int A ID do contêiner (representado como um arquivo com o tipo FILESTREAM em sys.database_files) do qual o arquivo de dados ou delta faz parte. Junta-se com file_id no sys.database_files (Transact-SQL).
container_guid uniqueidentifier O GUID do contêiner do qual fazem parte os dados ou o arquivo delta.
checkpoint_file_id GUID ID dos dados ou arquivo delta.
relative_file_path nvarchar(256) Caminho para os dados ou arquivo delta, relativo ao local do contêiner.
file_type tinyint 0 para arquivo de dados.

1 para arquivo delta.

NULL se a coluna de estado estiver definida como 7.
file_type_desc nvarchar(60) O tipo de arquivo: DATA_FILE, DELTA_FILE ou NULL se a coluna de estado estiver definida como 7.
internal_storage_slot int O índice do arquivo na matriz de armazenamento interna. NULL se a coluna de estado não for 2 ou 3.
checkpoint_pair_file_id uniqueidentifier Os dados ou arquivo delta correspondentes.
file_size_in_bytes bigint Tamanho do arquivo usado. NULL se a coluna de estado estiver definida como 5, 6 ou 7.
file_size_used_in_bytes bigint Tamanho utilizado do arquivo que está sendo usado NULL se a coluna de estado estiver definida como 5, 6 ou 7.

Para os pares de arquivos de ponto de verificação que ainda estão sendo populados, essa coluna será atualizada após o próximo ponto de verificação.
inserted_row_count bigint Número de linhas no arquivo de dados.
deleted_row_count bigint Número de linhas excluídas no arquivo delta.
drop_table_deleted_row_count bigint O número de linhas nos arquivos de dados afetados por uma tabela. Aplica-se aos arquivos de dados quando o estado da coluna for igual a 1.

Mostra as contagens de linhas excluídas das tabelas removidas. As estatísticas drop_table_deleted_row_count são compiladas depois que a coleta de lixo de memória das linhas nas tabelas removidas é concluída e um ponto de verificação é realizado. Se você reiniciar o SQL Server antes que as estatísticas das tabelas suspensas sejam refletidas nessa coluna, as estatísticas serão atualizadas como parte da recuperação. O processo de recuperação não carrega linhas das tabelas removidas. As estatísticas das tabelas removidas são compiladas durante a fase de carregamento e relatadas nessa coluna quando a recuperação é concluída.
estado int 0 - PRÉ-CRIADO

1 - EM CONSTRUÇÃO

2 - ATIVO

3 - MESCLAR DESTINO

4 - FONTE MESCLADA

5 - NECESSÁRIO PARA BACKUP/HA

6 - EM TRANSIÇÃO PARA A LÁPIDE

7 - LÁPIDE
state_desc nvarchar(60) PRÉ-criado - Um pequeno conjunto de pares de arquivos delta e de dados, também conhecidos como CFPs (pares de arquivos de ponto de verificação), é mantido pré-alocado para minimizar ou eliminar quaisquer esperas para alocar novos arquivos à medida que as transações estão sendo executadas. Eles são criados com um tamanho de arquivo de dados de 128 MB e um tamanho de arquivo delta de 8 MB, mas não contêm dados. O número de CFPs é calculado como o número de processadores lógicos ou de agendadores (um por núcleo, sem número máximo) com um mínimo de 8. Essa é uma sobrecarga de armazenamento fixa em bancos de dados com tabelas com otimização de memória.

EM CONSTRUÇÃO - Conjunto de CFPs que armazenam linhas de dados recém-inseridas e possivelmente excluídas desde o último ponto de verificação.

ATIVO - Esses contêm as linhas inseridas e excluídas dos pontos de verificação fechados anteriores. Esses CFPs contêm todas as linhas inseridas e excluídas necessárias antes da aplicação da parte ativa do log de transações na reinicialização do banco de dados. O tamanho desses CFPs será aproximadamente duas vezes o tamanho na memória das tabelas com otimização de memória, supondo que a operação de mesclagem esteja atualizada com a carga de trabalho transacional.

DESTINO DE MESCLAGEM - O CFP armazena as linhas de dados consolidadas do(s) CFP(s) que foram identificados pela política de mesclagem. Assim que a mesclagem for instalada, a opção MESCLAR DESTINO entrará no estado ATIVO.

MERGED SOURCE - Depois que a operação de mesclagem é instalada, os CFPs de origem são marcados como MERGED SOURCE. Observe que o avaliador de política de mesclagem pode identificar várias mesclagens, mas um CFP só pode participar de uma operação de mesclagem.

REQUIRED FOR BACKUP/HA - Depois que a mesclagem for instalada e o CFP DE DESTINO DE MESCLAGEM fizer parte do ponto de verificação durável, os CFPs de origem da mesclagem farão a transição para esse estado. Os CFPs nesse estado são necessários para exatidão operacional do banco de dados da tabela com otimização de memória. Por exemplo, restaurar de um ponto de verificação durável para voltar no tempo. Um CFP pode ser marcado para coleta de lixo depois que o ponto de truncamento do log passar de seu intervalo de transações.

EM TRANSIÇÃO PARA A MARCA DE EXCLUSÃO - Esses CFPs não são necessários para o mecanismo OLTP in-memory e podem ser coletados como lixo. Esse estado indica que esses CFPs estão aguardando o thread em segundo plano para fazer a transição deles para o próximo estado, que é MARCA DE EXCLUSÃO.

TOMBSTONE - Esses CFPs estão aguardando para serem coletados pelo coletor de lixo do fluxo de arquivos. (sp_filestream_force_garbage_collection (Transact-SQL))
lower_bound_tsn bigint O limite inferior de transações contidas no arquivo. NULL se a coluna de estado for diferente de 2, 3 ou 4.
upper_bound_tsn bigint O limite superior de transações contidas no arquivo. NULL se a coluna de estado for diferente de 2, 3 ou 4.
last_backup_page_count int Contagem de página lógica que é determinada no último backup. Aplica-se quando a coluna de estado estiver definida como 2, 3, 4 ou 5. NULL se a contagem de páginas não for conhecida.
delta_watermark_tsn int A transação do último ponto de verificação que gravou neste arquivo delta. Essa é a marca d'água do arquivo delta.
last_checkpoint_recovery_lsn nvarchar(23) Número de sequência do log de recuperação do último ponto de verificação que ainda precisa do arquivo.
tombstone_operation_lsn nvarchar(23) O arquivo será excluído uma vez que tombstone_operation_lsn ir para trás do número de sequência de log de truncamento do registro.
logical_deletion_log_block_id bigint Aplica-se somente ao estado 5.

Permissões

Requer a permissão VIEW DATABASE STATE no banco de dados.

Permissões do SQL Server 2022 e posteriores

Requer a permissão VIEW DATABASE PERFORMANCE STATE no banco de dados.

Casos de uso

Você pode estimar o armazenamento total usado pelo OLTP in-memory da seguinte maneira:

-- 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 um detalhamento da utilização do armazenamento por estado e tipo de arquivo, execute a seguinte consulta:

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;