Pergunta sobre SOS_SCHEDULER_YIELD
quando usar sys.dm_os_wait_stats
:
Não deveria signal_wait_time_ms
ser exatamente o mesmo que wait_time_ms
para o SOS_SCHEDULER_YIELD
tipo de espera?
Para outros tipos de espera, a espera de sinal é quando um thread de trabalho está aguardando na fila executável no agendador. Portanto, concluo que a espera do sinal deve ser o mesmo que o tempo total de espera (= wait_time_ms
) para SOS_SCHEDULER_YIELD
quando olhar para sys.dm_os_wait_stats
.
Portanto, meu problema é que as duas colunas mencionadas devem ter o mesmo valor neste DMV para esse tipo de espera específico.
Mais especificamente, estou analisando um caso em que signal_wait_time_ms
é maior que wait_time_ms
, e gostaria de uma explicação para essa diferença.
O exemplo que estou vendo é do livro "Pro SQL Server 2019 wait Statistics" de Van de Laar. Em uma captura de tela na página 120, a espera do sinal é maior para SOS_SCHEDULER_YIELD
.
Da documentação para
sys.dm_os_wait_stats
(ênfase minha):Se você vir signal_wait_time_ms maior que wait_time_ms, de acordo com a documentação atual, isso é um bug. Você deve denunciá-lo à Microsoft se estiver causando problemas para que eles possam investigar onde as coisas saíram dos trilhos. Podem ser erros de arredondamento nos dados subjacentes que levam a uma pequena diferença (você não mencionou a distância entre os dois valores).
Você disse isso:
Como o exemplo é de uma captura de tela em um livro, é bem possível que os processos editoriais tenham resultado em informações inválidas no resultado final publicado. Nesse caso, eu não me preocuparia muito com isso. Você pode entrar em contato com o autor para ver se é possível ou provável que algo tenha acontecido assim (talvez eles estivessem juntando capturas de tela de vários testes para simplificar).