Bom, *** além *** de tudo o que vc falou (E que implica em questões de 
Pagamento de Licenças e etc - NÃO ADINATA CHORAR depois dizendo que ah, o 
Licenciamento é complexo, eu não sabia que um simples SELECT no ASH pode ser 
cobrado :), etc) , eu Acrescento que (ao que Imagino) vc SABE que num RDBMS 
multi-usuário como é o Oracle é IMPOSSÍVEL a CPU atender todas as dezenas (ou 
centenas, ou mais) sessões de uma vez - assim sendo, há um RODÍZIO, algumas 
poucas sessões vão pra status Ativo e são atendidas, aí elas passam a ser 
marcadas como INATIVAS e a CPU vai atender algumas outras (que estavam marcadas 
como INATIVAS e agora passam a ser marcadas como ATIVAS), e assim vai indo.... 
Da mesma forma, uma sessão que conectou mas há muuuuito tempo não pede nada pro 
banco muito certamente tá inativa há bastante tempo e a tendência é assim 
continuar... ===> OU SEJA, se vc ver uma grande qtdade de sessões INATIVAS num 
dado momento tanto PODE SER que a CPU não tá dando conta de atender a tantas 
sessões simultâneas e assim grande parte delas tá indo pro time slice/rodízio 
QUANTO pode ser que vc tem algum POOL DE CONEXÃO aí e realmente o número de 
sessões tá mesmo MUUUITO maior que o necessário.....

Obs feitas, seguinte : a V$ACTIVE_SESSION_HISTORY (e seus snapshots arquivados 
que ficam na DBA_HIST equivalente) só registra sessões ATIVAS, ponto : a nível 
de sistema, pra vc ter uma contagem de sessões geral, vc consulta a 
dba_hist_sysmetric_summary cfrme mostrado em  
http://bbdd-error.blogspot.com.br/2017/10/oracle-historical-session-information.html
 : aí número de sessões inativas seria a contagem geral de sessões menos a 
contagem na DBA_HIST para o snapshot em questão... Não tenho neste momento 
acesso a um banco Oracle pra escrever uma query-exemplo MAS COM CERTEZA não 
deve ser complicado, não....

[]s

  Chiappa

Responder a