Um recurso pouco utilizado, porém muito útil no Oracle Database é setar informações da aplicação nas views de sistema V$SESSION / GV$SESSION. É comum alguma consulta estar impactando o ambiente e as informações contidas nas views de sistema e as informações não serem tão precisas a ponto de ir direto no problema. É possível, por exemplo, colocar o nome da aplicação ou da etapa do processo em que está sendo executado, e com isso você saberia se o processo que está impactando é o início ou o fim do processo.
Mãos á obra ..
Abra uma query no Oracle e execute a query abaixo. Nesse caso, eu estou informando que minha aplicação é o controle de estoque e que o procedimento que está sendo executado é a baixa de produtos devolvidos:
[code lang=”sql”]
exec dbms_application_info.set_module(module_name => ‘Controle de Estoque’,action_name => ‘Baixa dos produtos devolvidos’);
PL/SQL procedure successfully completed.
[/code]
Após execução do pacote acima, a query na v$session será populada com os dados:
[code lang=”sql”]
select osuser, module, action from v$session where action is not null
noraldino <strong>Controle de Estoque Baixa dos produtos devolvidos</strong>
[/code]
As informações contidas no pacote podem ser customizadas de acordo com sua necessidade. É recomendado que esse procedimento seja repassado ao time de desenvolvimento para que seja incluído esse pacote antes das execuções de procedimentos, pois na hora do troubleshooting essas informações podem ser muito úteis e poupar muito tempo dos envolvidos.
Enjoy !
Uma resposta
Olá Leonardo, Boa Tarde.
Tudo bem?
Participei do GUOB TECH DAY 2020, sua palestra foi muito boa, primeiramente quero lhe agradecer por compartilhar seu conhecimento com a comunidade.
Por favor, como faço para ter acesso ao .ppt da sua apresentação?
Estou com uma solicitação, onde preciso fazer um levantamento da quantidade de sessões que um determinado usuário consome no banco de dados oracle
(versão 12.2.0.1), eles querem um relatório/gráfico dos picos de sessões, com o intuito de alterar o profile do usuário na condição do RESOURCE_NAME=’SESSIONS_PER_USER’, assim evitará consumo desnecessário dos recursos do banco de dados.
Hoje temos um valor muito baixo e está ocorrendo o erro:
ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit
Desde já lhe agradeço apoio e atenção.