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;
Conteúdo relacionado
- Introdução às tabelas com otimização de memória
- Exibições de gerenciamento dinâmico de tabela com otimização de memória
- Visão geral do OLTP in-memory e cenários de uso
- Otimizar o desempenho usando tecnologias na memória no Banco de Dados SQL do Azure
- Otimizar o desempenho usando tecnologias na memória na Instância Gerenciada de SQL do Azure