Estou executando o SQL Server (2012) em uma instância do Hyper-V. Possui muitos recursos e 25% reservados do total de recursos, o VHD é colocado em uma unidade SSD muito rápida para tempos de resposta rápidos.
De vez em quando, quando os aplicativos que usam o SQL Server não são acessados há um tempo, eles recebem o erro "A operação de espera expirou". Ao recarregar ou tentar novamente acessar o banco de dados, parece ter sido "despertado" e está mais rápido do que nunca.
Existe alguma maneira de garantir que esse modo de suspensão suave não ocorra nesse tipo de ambiente?
Adicionado
Detalhes da exceção: System.ComponentModel.Win32Exception: A operação de espera atingiu o tempo limite
sql-server
hyper-v
Eric Herlitz
fonte
fonte
Respostas:
Tente executar este comando:
Incrivelmente, resolveu o problema.
O código acima é o erro antes da execução do comando.
fonte
exec sp_updatestats
é uma má idéia?Eu tive o mesmo problema. Correr
exec sp_updatestats
funcionava algumas vezes, mas nem sempre. Decidi usar aNOLOCK
instrução em minhas consultas para acelerar as consultas. Basta adicionarNOLOCK
após a cláusula FROM, por exemplo:Leia o artigo completo aqui .
fonte
Eu tive exatamente o mesmo problema e descobri que foi causado por uma alocação de memória insuficiente na VM Hyper-V. Eu tinha a memória definida como dinâmica, mas ela não estava aumentando conforme necessário - a mudança para uma quantidade fixa de memória, no meu caso 32 GB, resolveu o problema. A interação entre SqlBulkCopy e Sql Server não parece capaz de obter mais memória quando necessário?
fonte