sys.dm_db_xtp_gc_cycle_stats (Transact-SQL)
Aplica-se a: SQL ServerBanco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Gera o estado atual das transações confirmadas que excluíram uma ou mais linhas. O thread inativo de coleta de lixo é ativado a cada minuto ou quando o número de transações DML confirmadas excede um limite interno desde o último ciclo de coleta de lixo. Como parte do ciclo de coleta de lixo, as transações confirmadas são movidas para uma ou mais filas associadas a gerações. As transações que geraram versões obsoletas são agrupadas em uma unidade de 16 transações em 16 gerações da seguinte maneira:
Geração 0: armazena todas as transações confirmadas antes da transação ativa mais antiga. As versões de linha geradas por essas transações são imediatamente disponibilizadas para coleta de lixo.
Gerações 1 a 14: armazena as transações com carimbo de data/hora posterior à transação ativa mais antiga. As versões de linha não podem ser coletadas como lixo. Cada geração pode reter até 16 transações. Pode existir um total de 224 (14 * 16) transações nessas gerações.
Geração 15: as transações restantes com carimbo de data/hora posterior à transação ativa mais antiga vai para a geração 15. Similar à geração 0, não há limite de número de transações na geração 15.
Quando há pressão de memória, o thread de coleta de lixo atualiza agressivamente a dica de transação ativa mais antiga, o que força a coleta de lixo.
Para obter mais informações, veja OLTP in-memory (otimização na memória).
Nome da coluna | Type | Descrição |
---|---|---|
cycle_id |
bigint | Um identificador de exclusividade para o ciclo de coleta de lixo. |
ticks_at_cycle_start |
bigint | Tiques no momento em que o ciclo foi iniciado. |
ticks_at_cycle_end |
bigint | Tiques no momento em que o ciclo foi encerrado. |
base_generation |
bigint | O valor base atual da geração no banco de dados. Isso representa o carimbo de data/hora da transação ativa mais antiga usado para identificar transações de coleta de lixo. A ID de transação ativa mais antiga é atualizada no incremento de 16. Por exemplo, se você tiver IDs de transação como 124, 125, 126 ... 139, o valor é 124. Quando você adiciona outra transação, por exemplo, 140, o valor é 140. |
xacts_copied_to_local |
bigint | O número de transações copiadas de pipeline da transação na matriz de geração de banco de dados. |
xacts_in_gen_0 - xacts_in_gen_15 |
bigint | Número de transações em cada geração. |
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.
Cenário de uso
Aqui está uma saída de exemplo com um subconjunto de colunas, mostrando 27 gerações:
cycle_id ticks_at_cycle_start ticks_at_cycle_end base_generation xacts_in_gen_0 xacts_in_gen_1
1 123160509 123160509 1 0 0
2 123176822 123176822 1 0 1
3 123236826 123236826 1 0 1
4 123296829 123296829 1 0 1
5 123356832 123356941 129 0 0
6 123357473 123357473 129 0 0
7 123417486 123417486 129 0 0
8 123477489 123477489 129 0 0
9 123537492 123537492 129 0 0
10 123597500 123597500 129 0 0
11 123657504 123657504 129 0 0
12 123717507 123717507 129 0 0
13 123777510 123777510 129 0 0
14 123837513 123837513 129 0 0
15 123897516 123897516 129 0 0
16 123957516 123957516 129 0 0
17 124017516 124017516 129 0 0
18 124077517 124077517 129 0 0
19 124137517 124137517 129 0 0
20 124197518 124197518 129 0 0
21 124257518 124257518 129 0 0
22 124317523 124317523 129 0 0
23 124377526 124377526 129 0 0
24 124437529 124437529 129 0 0
25 124497533 124497533 129 0 0
26 124557536 124557536 129 0 0
27 124617539 124617539 129 0 0
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