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
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Fornece informações sobre cada fila de trabalhador de recolha de lixo no servidor, bem como várias estatísticas sobre cada um. Há uma fila por CPU lógica.
O fio principal de recolha de lixo (o fio Idle) acompanha linhas atualizadas, eliminadas e inseridas para todas as transações concluídas desde a última invocação do fio principal de recolha de lixo. Quando a thread de recolha de lixo ativa, determina se o carimbo temporal da transação ativa mais antiga mudou. Se a transação ativa mais antiga tiver sido alterada, então o thread inativo coloca itens de trabalho em fila (em blocos de 16 linhas) para transações cujos conjuntos de escrita já não são necessários. Por exemplo, se apagar 1.024 linhas, verá eventualmente 64 itens de trabalho de recolha de lixo em fila, cada um contendo 16 linhas eliminadas. Depois de uma transação do utilizador ser confirmada, seleciona todos os itens enfileirados no seu agendador. Se não houver itens enfileirados no seu agendador, a transação do utilizador irá pesquisar em qualquer fila no nó NUMA atual.
Pode determinar se a recolha de lixo está a libertar memória para linhas eliminadas executando sys.dm_xtp_gc_queue_stats para ver se o trabalho enfileirado está a ser processado. Se as entradas no current_queue_depth não estiverem a ser processadas ou se não houver novos itens de trabalho adicionados ao current_queue_depth, isto indica que a recolha de lixo não está a libertar memória. Por exemplo, a recolha de lixo não pode ser feita se houver uma transação de longa duração.
Para obter mais informações, consulte In-Memory OLTP (In-Memory Optimization).
| Nome da coluna | Tipo | Description |
|---|---|---|
| queue_id | int | O identificador único da fila. |
| total_enqueues | bigint | O número total de itens de trabalho de recolha de lixo enfileirados nesta fila desde que o servidor começou. |
| total_dequeues | bigint | O número total de itens de trabalho de recolha de lixo foi retirado desta fila desde o início do servidor. |
| current_queue_depth | bigint | O número atual de itens de trabalho de recolha de lixo presentes nesta fila. Este item pode implicar que um ou mais sejam recolhidos no lixo. |
| maximum_queue_depth | bigint | A profundidade máxima que esta fila já viu. |
| last_service_ticks | bigint | A CPU faz ticks na altura em que a fila foi mantida pela última vez. |
Permissions
Requer permissão de VISUALIZAR ESTADO DO SERVIDOR.
Permissões para SQL Server 2022 e posterior
Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Cenário do Utilizador
Este resultado mostra que o SQL Server está a correr em 4 núcleos ou que a instância do SQL Server foi affinizada para 4 núcleos:
Esta saída mostra que não há itens de trabalho nas filas para processar. Para a fila 0, o total de itens de trabalho desalinhados desde o arranque SQL é 15625 e a profundidade máxima da fila tem sido 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
Consulte também
Memory-Optimized Vistas de Gestão Dinâmica da Tabela (Transact-SQL)