Recentemente, tivemos problemas com nosso banco de dados oracle bloqueando uma consulta que conhecemos até agora.
Darei uma explicação do que está acontecendo, mas realmente não tem muito a ver com a minha pergunta, mas estou aberto a sugestões.
Intermitentemente, não é possível dizer quando isso acontecerá, aconteceu quatro vezes no mês passado, um usuário clicará em algo no aplicativo. O que o usuário está clicando ainda é desconhecido. Quando o que é clicado, ele executa uma consulta no banco de dados que gera cerca de 700k linhas.
Eu verifiquei a tabela em que a consulta está sendo executada e os índices parecem bons.
O banco de dados é de 60 GB, há 32 GB no servidor.
Nos logs no servidor de banco de dados, vejo alta E / S, mas CPU e RAM permanecem iguais.
No servidor de aplicativos, a CPU sobe para cerca de 75%. Posso encontrar o processo de trabalho, encontrar o PID, no entanto, quando eu mato o PID associado ao processo de trabalho, a CPU diminui brevemente e depois volta a funcionar.
Além disso, reciclando o pool de aplicativos e reiniciando o IIS faz a mesma coisa, a CPU diminui brevemente e depois volta a funcionar.
A única coisa que pode ser feita para colocar o servidor de volta na linha é uma reinicialização.
Portanto, minha sugestão, se essa consulta é o que está causando os bloqueios, a memória pode ser aumentada na caixa para permitir que o banco de dados seja armazenado em cache e fique sem memória. Ouvi isso uma vez, mas não tenho certeza se é verdade.
O armazenamento é um HP PAR 3 com 3 camadas e o banco de dados praticamente permanece na camada SSD.
Que é mais rápido SSD ou memória