Eu tenho dois procedimentos armazenados que estão travando quando o sistema está sob carga. O processo A é selecionado em uma tabela enquanto o processo B é inserido na mesma tabela. O Gráfico de bloqueio está mostrando que o Proc A possui um bloqueio de página no modo S, pelo qual o Proc B deseja um bloqueio no modo IX, o Proc A, no entanto, está aguardando um bloqueio de página no modo S para uma página diferente na qual o Proc B já possui um bloqueio de página no modo IX. .
Claramente, isso poderia ser resolvido, garantindo que ambas as consultas bloqueiem as páginas da tabela na mesma ordem, mas não consigo descobrir como fazer isso.
Minha pergunta é: como o SQL Server determina em que ordem bloquear páginas enquanto faz INSERTs e SELECTs e como você pode modificar esse comportamento?
fonte