Depois de ler Unusual THREADPOOL Waits de Josh Darnell, um usuário do Twitter mencionou que há um sinalizador de rastreamento não documentado para evitar o corte de trabalhadores ociosos :
A ideia é que, uma vez que o SQL Server tenha criado threads suficientes para atender a carga de trabalho de pico, ele não deve aparar os threads de trabalho (liberando-os para o sistema operacional) após 15 minutos ou mais de não serem necessários.
Os threads de trabalho ociosos continuarão a usar recursos (por exemplo, memória), mas não haverá a explosão de THREADPOOL
esperas quando mais trabalhos forem necessários de repente. Aparentemente, isso pode ser útil ao usar grupos de disponibilidade AlwaysOn.
O que é esse sinalizador de rastreamento não documentado e como ele funciona?
O sinalizador de rastreamento é 8061 .
Não está documentado, portanto, só deve ser ativado quando sugerido pelo suporte da Microsoft.
O sinalizador precisa ser ativado globalmente (ou na inicialização):
O SQL Server verifica se deve cortar trabalhadores ociosos em:
Ignora o corte de rotina em excesso do trabalhador se o sinalizador de rastreamento 8061 estiver definido.
O corte do trabalhador é realizado por:
O corte do trabalhador ainda será executado se o seguinte valor de memória for maior que zero:
Com razão, o sinalizador de rastreamento não impedirá o corte em todos os cenários, mas funciona para o propósito expresso na pergunta.