Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Apresenta informações sobre In-Memory ficheiros de checkpoint OLTP, incluindo tamanho do ficheiro, localização física e o ID da transação.
Note
Para o ponto de controlo atual que ainda não fechou, a coluna de estado de sys.dm_db_xtp_checkpoint_files estará EM CONSTRUÇÃO para novos ficheiros. Um ponto de controlo fecha automaticamente quando há crescimento suficiente do registo de transações desde o último ponto de controlo, ou se emitir o CHECKPOINT comando. Para obter mais informações, consulte CHECKPOINT (Transact-SQL).
Um grupo de ficheiros otimizado para memória utiliza internamente ficheiros apenas adicionáveis para armazenar linhas inseridas e eliminadas para tabelas em memória. Existem dois tipos de ficheiros. Um ficheiro de dados contém linhas inseridas enquanto um ficheiro delta contém referências a linhas eliminadas.
Para mais informações, consulte Criação e Gestão de Armazenamento para Memory-Optimized Objetos.
| Nome da coluna | Tipo | Descrição |
|---|---|---|
| container_id | int | O ID do contentor (representado como um ficheiro com o tipo FILESTREAM em sys.database_files) do qual o ficheiro de dados ou delta faz parte. Junta-se a file_id em sys.database_files (Transact-SQL). |
| container_guid | uniqueidentifier | GUID do Contentor, do qual fazem parte a raiz, o ficheiro de dados ou delta. Junta-se com file_guid na sys.database_files mesa. |
| checkpoint_file_id | uniqueidentifier | GUID do ficheiro do ponto de controlo. |
| relative_file_path | nvarchar(256) | Caminho do ficheiro em relação ao contentor para onde está mapeado. |
| file_type | smallint | -1 GRÁTIS 0 para ficheiro DATA. 1 para o ficheiro DELTA. 2 para ficheiro ROOT 3 para ficheiro BIG DATA |
| descrição_do_tipo_de_ficheiro | nvarchar(60) | GRATUITO - Todos os ficheiros mantidos como GRATUITOS estão disponíveis para alocação. Os ficheiros gratuitos podem variar em tamanho consoante as necessidades previstas pelo sistema. O tamanho máximo é de 1 GB. DADOS - Os ficheiros de dados contêm linhas que foram inseridas em tabelas otimizadas para memória. DELTA - Os ficheiros Delta contêm referências a linhas em ficheiros de dados que foram eliminados. ROOT - Os ficheiros raiz contêm metadados do sistema para objetos otimizados para memória e compilados nativamente. DADOS GRANDES - Os ficheiros de dados grandes contêm valores inseridos nas colunas (n)varchar(max) e varbinary(max), bem como os segmentos de coluna que fazem parte dos índices de columnstore em tabelas otimizadas para memória. |
| internal_storage_slot | int | O índice do ficheiro no array de armazenamento interno.
NULL para ROOT ou para estados diferentes de 1. |
| checkpoint_pair_file_id | uniqueidentifier | Ficheiro DATA ou DELTA correspondente.
NULL para ROOT. |
| file_size_in_bytes | bigint | Tamanho do ficheiro no disco. |
| file_size_used_in_bytes | bigint | Para pares de ficheiros de checkpoints que ainda estão a ser preenchidos, esta coluna será atualizada após o próximo checkpoint. |
| logical_row_count | bigint | Para Dados, número de linhas inseridas. Para Delta, número de linhas eliminadas após contabilizar a tabela de drop. Para Root, NULL. |
| state | smallint | 0 - PRÉ-CRIADO 1 - EM CONSTRUÇÃO 2 - ATIVO 3 - MERGE ALVO 8 - À ESPERA DE TRUNCAMENTO DO TRONCO |
| descrição_do_estado | nvarchar(60) | PRÉ-CRIADO - Vários ficheiros de checkpoint são pré-alocados para minimizar ou eliminar quaisquer esperas para alocar novos ficheiros à medida que as transações são executadas. Estes ficheiros podem variar em tamanho e são criados consoante as necessidades estimadas da carga de trabalho. Não contêm dados. Isto representa uma sobrecarga de armazenamento em bases de dados com um grupo de ficheiros MEMORY_OPTIMIZED_DATA. EM CONSTRUÇÃO - Estes ficheiros de checkpoint estão em construção, ou seja, estão a ser preenchidos com base nos registos de registo gerados pela base de dados e ainda não fazem parte de um checkpoint. ATIVO - Estes contêm as linhas inseridas/eliminadas de checkpoints fechados anteriormente. Contêm o conteúdo das tabelas que são lidas na memória antes de aplicarem a parte ativa do registo de transações no reinício da base de dados. Esperamos que o tamanho destes ficheiros de checkpoint seja aproximadamente 2x o tamanho em memória das tabelas otimizadas para memória, assumindo que a operação de fusão acompanha a carga de trabalho transacional. MERGE TARGET - O alvo das operações de fusão - estes ficheiros de checkpoint armazenam as linhas de dados consolidadas dos ficheiros de origem identificados pela política de fusão. Uma vez instalada a fusão, o MERGE TARGET transita para o estado ATIVO. AGUARDANDO TRUNCAMENTO DO LOG - Uma vez instalada a fusão e o MERGE CFP TARGET faz parte do checkpoint durável, os ficheiros de checkpoint da fonte da fusão transitam para este estado. Ficheiros neste estado são necessários para a correção operacional da base de dados com tabela otimizada para memória. Por exemplo, recuperar de um ponto de controlo durável para voltar atrás no tempo. |
| lower_bound_tsn | bigint | Limite inferior da transação no ficheiro; NULL se não estiver em (1, 3). |
| upper_bound_tsn | bigint | Limite superior da transação no ficheiro; NULL se não estiver em (1, 3). |
| begin_checkpoint_id | bigint | Identificação do ponto de controlo inicial. |
| end_checkpoint_id | bigint | Identificação do posto de controlo final. |
| last_updated_checkpoint_id | bigint | ID do último posto de controlo que atualizou este ficheiro. |
| encryption_status | smallint | 0, 1, 2 |
| encryption_status_desc | nvarchar(60) | 0 => NÃO ENCRIPTADO 1 => ENCRIPTADO COM A CHAVE 1 2 => ENCRIPTADO COM A CHAVE 2. Válido apenas para ficheiros ativos. |
Permissions
Requer permissão VIEW DATABASE STATE no banco de dados.
Permissões para SQL Server 2022 e posterior
Requer VIEWDATABASE permissão de ESTADO DE DESEMPENHO na base de dados.
Casos de uso
Pode estimar o armazenamento total utilizado por In-Memory OLTP da seguinte forma:
-- 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 uma divisão da utilização do armazenamento por estado e tipo de ficheiro, 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 Memory-Optimized
- Memory-Optimized Vistas de Gestão Dinâmica da Tabela
- In-Memory Visão Geral e Cenários de Utilização OLTP
- Otimizar o desempenho usando tecnologias na memória no Banco de Dados SQL do Azure
- Otimizar o desempenho usando tecnologias na memória no Azure SQL Managed Instance