read-by-other-session
Descrição do evento
O evento Read by Other Session ocorre quando uma sessão tenta acessar um bloco no Buffer Cache, mas o bloco ainda está sendo carregado do disco para a memória por outra sessão. Isso resulta em um atraso, pois a sessão precisa aguardar a conclusão do carregamento antes de prosseguir.
Impacto no banco de dados
Latência Aumentada: Consultas ou transações podem ser atrasadas, especialmente em sistemas com alta concorrência.
Gargalos no Acesso a Dados: Pode indicar que as mesmas tabelas ou índices estão sendo acessados repetidamente por várias sessões ao mesmo tempo.
Pressão no I/O: A alta ocorrência deste evento pode indicar uma dependência excessiva de leituras no disco.
Causas comuns
Concorrência no Acesso a Blocos: Sessões múltiplas acessando os mesmos blocos frequentemente.
Falta de Cache no Buffer: O Buffer Cache é insuficiente para armazenar os blocos frequentemente acessados.
Consultas Não Otimizadas: Queries que realizam muitas leituras desnecessárias de disco ou escaneamento completo de tabelas.
Alta Atividade em Hotspots: Tabelas ou índices específicos estão sendo acessados de maneira intensiva, criando contenção.
Como reduzir ou resolver o evento
Aumentar o Buffer Cache: Ajuste o parâmetro DB_CACHE_SIZE para garantir que os blocos frequentemente acessados permaneçam na memória. Use V$DB_CACHE_ADVICE para avaliar o impacto de aumentar o tamanho do Buffer Cache.
Identificar e Resolver Hotspots: Identifique as tabelas ou índices mais acessados e otimize sua utilização. Considere particionamento de tabelas para distribuir a carga de acesso.
Otimizar Consultas SQL: Reduza leituras desnecessárias adicionando ou ajustando índices. Atualize estatísticas de tabelas para melhorar os planos de execução.
Distribuir Acessos em Horários Diferentes: Reorganize a execução de consultas ou relatórios intensivos para horários de menor concorrência.
Revisar Paralelismo: Certifique-se de que consultas paralelas não estão sobrecarregando o Buffer Cache.
V$SESSION_WAIT: Monitore sessões aguardando pelo evento read by other session.
V$SYSTEM_EVENT: Identifique o impacto global deste evento no banco.
AWR Reports: Analise tendências de acesso a dados e ocorrência de contenção.
V$SQL: Identifique as consultas que mais realizam leituras e otimize-as.