Oracle Lento

Referencia: Blog do Portilho

Wait Events de I/O

O Wait Events abaixo são eventos relacionados a I/O (discos rígidos).
Se estes eventos aparecerem muito na V$SESSION_WAIT, certamente há um problema de I/O no Banco de Dados (está usando RAID 5?;-) ).

async disk IO
control file parallel write
control file sequential read
db file parallel write
db file scattered read
db file sequential read
direct path read
direct path write
log file parallel write
log file sync

Dois destes eventos merecem atenção especial:

db file scattered read – Um Full Table Scan está ocorrendo: Se este evento aparecer repetidamente na V$SESSION_WAIT, pode significar um SELECT que teria uma performance melhor com um índice apropriado.
db file sequential read
– Leitura de índice: Se este evento aparecer repetidamente na V$SESSION_WAIT para um mesmo SID, pode significar leituras desnecessárias de índice, como aquelas forçadas por um HINT, onde um Full Table Scan seria melhor (sim, isto acontece muito).

Então, para pegar as WAITS do banco no momento atual:
SQL> SELECT SID, EVENT, SECONDS_IN_WAIT FROM V$SESSION_WAIT ORDER BY W.SECONDS_IN_WAIT;

Para pegar o SQL que está causando estas WAITs (troque o 754 abaixo pelo SID que pegou no SELECT anterior):
SQL> SELECT A.SQL_TEXT FROM V$SQLTEXT A, V$SESSION B WHERE A.ADDRESS = B.SQL_ADDRESS AND A.HASH_VALUE = B.SQL_HASH_VALUE AND B.SID = 754 ORDER BY PIECE;

Anúncios

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s