sys.dm_xtp_gc_queue_stats (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Envia informações sobre cada fila de trabalhos de coleta de lixo no servidor, e várias estatísticas sobre cada uma delas. Há uma fila por CPU lógica.
O thread principal de coleta de lixo (thread inativo) rastreia linhas atualizadas, excluídas e inseridas de todas as transações concluídas desde a última chamada do thread principal de coleta de lixo. Quando o thread de coleta de lixo é ativado, ele determina se o carimbo de data/hora da transação ativa mais antiga foi alterado. Se a transação ativa mais antiga tiver sido alterada, o thread inativo enfileirará os itens de trabalho (em partes de 16 linhas) para transações cujos conjuntos de gravações não são mais necessários. Por exemplo, se você excluir 1.024 linhas, acabará vendo 64 itens de trabalho de coleta de lixo enfileirados, cada um contendo 16 linhas excluídas. Depois que uma transação de usuário é confirmada, ela seleciona todos os itens enfileirados em seu agendador. Se não houver itens enfileirados no agendador, a transação do usuário realizará a pesquisa em qualquer fila do nó NUMA atual.
Você pode determinar se a coleta de lixo está liberando memória para as linhas excluídas executando sys.dm_xtp_gc_queue_stats para saber se o trabalho enfileirado está sendo processado. Se as entradas no current_queue_depth não estiverem sendo processadas ou se nenhum novo item de trabalho estiver sendo adicionado ao current_queue_depth, isso é uma indicação de que a coleta de lixo não está liberando memória. Por exemplo, a coleta de lixo não poderá ser feita se houver uma transação de execução longa.
Para obter mais informações, veja OLTP in-memory (otimização na memória).
Nome da coluna | Type | Descrição |
---|---|---|
queue_id | int | O identificador exclusivo da fila. |
total_enqueues | bigint | O número total de itens de trabalho de coleta de lixo enfileirados para essa fila desde que o servidor foi iniciado. |
total_dequeues | bigint | O número total de itens de trabalho de coleta de lixo removidos dessa fila desde que o servidor foi iniciado. |
current_queue_depth | bigint | O número atual de itens de trabalho de coleta de lixo presentes nessa fila. Este item pode indicar um ou mais para serem limpos. |
maximum_queue_depth | bigint | A profundidade máxima que essa fila viu. |
last_service_ticks | bigint | Os tiques de CPU no momento em que a fila foi atendida por último. |
Permissões
Requer a permissão VIEW SERVER STATE.
Permissões do SQL Server 2022 e posteriores
É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Cenário de uso
Esta saída mostra que o SQL Server está em execução em 4 núcleos ou que a instância do SQL Server foi afinidade com 4 núcleos:
A saída mostra que não há nenhum item de trabalho nas filas para processar. Para a fila 0, o total de itens de trabalho removidos da fila desde a inicialização do SQL é 15625 e a profundidade máxima da fila foi 15625.
queue_id total_enqueues total_dequeues current_queue_depth maximum_queue_depth last_service_ticks
----------------------------------------------------------------------------------------------------
0 15625 15625 0 15625 1233573168347
1 15625 15625 0 15625 1234123295566
2 15625 15625 0 15625 1233569418146
3 15625 15625 0 15625 1233571605761
Confira também
Exibições de gerenciamento dinâmico de tabela com otimização de memória (Transact-SQL)