Conhecendo o inimigo.
Hello My friend! DBAs! How’s it going? Ok!… If you think: “He is a joke…” …You’re right man! But who aren’t? Just a litle.
Se avexe não! Como dizem meus amigos do nordeste… É apenas um pequeno treino “to improve my english” para ir aos EUA fazer a prova OCM ano que vem.
Vamos deixar de enrolação e vamos ao que interessa. O título do post e o comentário inicial parece algo tirado do Sun Tzu – A Arte da Guerra – não é mesmo?
Não se assuste! Hoje vou comentar um assunto que gosto muito e está ligado à performance. Vamos falar do Oracle Wait Interfaces, ou OWI para os íntimos.
OWI não é uma ferramenta, uma aplicação ou algo do gênero, é um estudo, uma técnica muito interessante que trata dos eventos de espera, ou melhor, dos causadores de problemas, tão indesejados pelos DBAs de performance, usuários de sistemas, etc…
Eu fui apresentado a ela, ou ela a mim, sei lá, certa vez por um grande amigo e excelente profissional com o qual tive o prazer de trabalhar, Roberto Faucz.
Na época ele ainda não era meu amigo, era meu entrevistador, para fazer parte da equipe de DBAs da empresa onde ele trabalhava; bem no final da entrevista ele me perguntou se eu conhecia OWI. Pronto, foi o que bastou para que eu me interessasse pelo assunto e iniciasse a pesquisas.
Trabalhamos juntos por quase 2 anos, De lá até hoje se foram mais de 07 anos, eu e o Faucz somos amigos e eu um eterno curioso/estudioso pelo assunto de performance.
Temida por todos a famosa lentidão do ambiente sempre tem uma razão de ser, para tudo haverá uma causa raiz que faz com que eventos ocorram e possam causar a demora.
Sendo assim nos basta entendê-los e assim evitar que ocorram (ou pelo menos tentar).
OWI então é este estudo.
Hoje vou começar uma série de posts que irá comentar os principais eventos com algumas dicas importantes que com certeza irá ajudar a identificar, entender evitar. Esta será nossa diretriz.
Segundo passo:
Sei que você está pensando: “Cadê o primeiro passo?” Ora, foi conhecer o que é OWI.Agora precisamos de alguma forma de saber se eles ocorrem no banco, qual tipo de evento e qual a frequência. Para isso vamos fazer uso de um script que também recebi certa vez do Roberto e nunca mais deixei de usá-lo:
SELECT i.instance_name, w.event, COUNT (*), SUM (seconds_in_wait)
FROM gv$instance i,gv$session_wait w
WHERE
i.inst_id = w.inst_id and
event not like ‘Streams AQ%’ and
event not like ‘queue messages%’ and
event not like ‘SQL*Net%’ and
(w.inst_id, SID) IN (SELECT inst_id, SID
FROM gv$session
WHERE status = ‘ACTIVE’ AND username IS NOT NULL)
GROUP BY i.instance_name,event
ORDER BY 3 DESC;
O Script acima irá trazer quais eventos de espera estão no banco de dados no momento e qual a frequência.
Assim a partir dos próximos posts irei tratar dos eventos mais importantes um a um.
Então espero que acompanhe, curta, comente. Lembre-se que a sua participação é o impulso para que eu escreva cada vez mais!
Boa Tarde Raul,
Achei o tema muito pertinente e interessante. Estarei acompanhando a sequencia das publicações. Sempre existe a oportunidade de aprimorar nossos conhecimentos.
Obrigado pelo compartilhamento de informações e troca de experiências.
Obrigado meu amigo. É um prazer que acompanhe. Grande abraço.