Eu estava pensando em algo assim hoje, mas não consegui encontrar essa informação.
Quando o SQL Server solicita memória e o SO não pode fornecê-la, obtemos um RESOURCE_SEMAPHORE
tipo de espera.
mas não consigo encontrar informações como:
digamos que a consulta pede 3GB. Mas só é possível fornecer 2, a consulta continua lenta ou fica esperando?
RESOURCE_SEMAPHORE
significa que a consulta está em um estado "parado" apenas aguardando a memória?As concessões de memória pendentes devem estar sempre em 0, certo? isso significa quanta memória as consultas estão solicitando, mas ainda estão esperando, certo?
Eu estava lendo concessões de memória: o misterioso consumidor de memória do SQL Server com muitos nomes da Microsoft, mas não explica isso, apenas explica o que é uma concessão de memória.
Paul Randal descreve o RESOURCE_SEMAPHORE :
Eu entendo sem a memória necessária a consulta não pode começar . Seu artigo também menciona que a consulta não vai esperar para sempre:
O documento Como solucionar o erro 8645 do SQL Server também pode ajudar: