Recentemente, temos tido problemas com nosso banco de dados oracle travando em 1 consulta que conhecemos até agora.
Vou detalhar o que está acontecendo, mas realmente não tem muito a ver com a minha pergunta, mas estou aberto a sugestões.
Intermitentemente, sem saber quando isso acontecerá, aconteceu 4 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 for clicado, ele executará uma consulta no banco de dados que gerará cerca de 700k Rows.
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 alto I/O, mas a CPU e a RAM permanecem as mesmas.
No servidor de aplicativos, a CPU sobe para cerca de 75%. Posso encontrar o processo de trabalho, encontrar o PID, no entanto, quando mato o PID associado ao processo de trabalho, a CPU fica inativa brevemente e depois volta a funcionar.
Além disso, reciclar o pool de aplicativos e reiniciar o IIS faz a mesma coisa, a CPU ficará inativa brevemente e depois voltará a funcionar.
A única coisa que pode ser feita para colocar o servidor de volta na linha é reiniciar.
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. Eu 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 reside na camada SSD.
Qual é o SSD ou Memória mais rápido
A DRAM é mais rápida que a flash NAND. Um acesso à RAM é da ordem de 100 ns, enquanto um SSD aleatório lê em torno de 16.000 ns. Números de latência que todo programador deve saber
Você precisa fazer uma análise sistemática do que está acontecendo e por quê. Não mude as coisas simplesmente porque ouviu algo de segunda mão sobre outro sistema. Descubra qual é o problema neste sistema.
Felizmente, os sistemas DBMS tendem a ter ferramentas de desempenho. O Oracle e outros RDBMS precisam
EXPLAIN PLAN
mostrar varreduras completas e outras ineficiências. As consultas podem ter um desempenho terrível mesmo com índices. Há também relatórios de desempenho do sistema como o Oracle AWR para encontrar gargalos. Se você deseja saber mais sobre o desempenho do banco de dados, também pode perguntar ao nosso site irmão, https://dba.stackexchange.com/