Eu acho que isso está relacionado ao sniffing de parâmetros e à necessidade de parametrizar seus parâmetros de entrada para parâmetros locais dentro do SP. Adicionar com recompilação faz com que o plano de execução seja recriado e elimina muitos dos benefícios de ter um SP. Estávamos usando o With Recompile em muitos relatórios na tentativa de eliminar esse problema de suspensão e, ocasionalmente, resultava na suspensão de SP's que podem estar relacionados a outros bloqueios e/ou transações acessando as mesmas tabelas simultaneamente. Veja este link para mais detalhesSniffing de parâmetros (ou spoofing ) no SQL Server e altere seus SPs para o seguinte para corrigir isso:
CRIAR PROCEDIMENTO [dbo].[SPNAME] @p1 int, @p2 intAS
DECLARE @localp1 int, @localp2 int
SET @[email protected] SET @[email protected]