Recentemente tenho notado alguns threads rodando em nosso servidor sql que são invocados de nossa aplicação, que estão em estado de suspensão por alguns minutos e tem transações abertas (normalmente apenas uma).
Eu adicionei o parâmetro @get_locks = 1 a sp_whoisactive para ver o que eles estavam segurando e o conjunto de resultados xml se parece com isso
<Database name="NOG_APP">
<Locks>
<Lock request_mode="S" request_status="GRANT" request_count="1" />
</Locks>
</Database>
Não vejo nenhum objeto aqui... como devo interpretar isso? Isso significa que este segmento não está segurando nenhum bloqueio? Em caso afirmativo, por que a saída não retorna NULL?
Executando o SQL Server 2012 SP3.
Isso significa que alguém tem uma conexão aberta nesse banco de dados. Você pode reproduzi-lo por:
E, em seguida, verificando as sessões de outra janela:
Se você acha que esse é o seu maior problema, no entanto, provavelmente é hora de verificar com os usuários e perguntar a eles sobre suas maiores reclamações sobre o banco de dados. Eu acho que você provavelmente está latindo para a árvore errada. Só posso desejar que meu maior problema seja abrir transações adormecidas sem nada bloqueado ....