- Este tópico contém 10 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 4 meses atrás por
Rodrigo Almeida.
-
AutorPosts
-
29 de outubro de 2008 às 3:14 pm #83401
hermesmc
ParticipanteSenhores,
Estou administrando um banco de dados ORACLE 10g que roda em um servidor windows 2003 enterprise edition. Estou notando uma queda sensível de performance no decorrer do dia. Notando isso, atualizo suas estatísticas(exec dbms_stats.gather_schema_stats(‘XXX’)) e a performance volta ao normal. Porém, tenho de fazer isso várias vezes durante o dia. O que poderia estar causando essa queda de peformance?
Grato
29 de outubro de 2008 às 3:52 pm #83403Ricardo Portilho Proni
ParticipanteRode este SELECT várias vezes, seguidamente, no horário em que a performance esteja ruim.
Coloque aqui o resultado.SELECT W.SID, W.EVENT, W.SECONDS_IN_WAIT FROM V$SESSION_WAIT W WHERE W.EVENT NOT LIKE ‘SQL*Net%’ AND W.EVENT NOT IN (‘pmon timer’, ‘smon timer’, ‘rdbms ipc message’, ‘wakeup time manager’) ORDER BY W.SECONDS_IN_WAIT, W.SID;
29 de outubro de 2008 às 4:57 pm #83407hermesmc
ParticipanteOk, assim que notar a lentidão vou rodar o select e postar os resultados. Desde já agradeço.
31 de outubro de 2008 às 6:02 pm #83434hermesmc
ParticipanteTentei formatar mas não ficou melhor que isso.
SID EVENT SECONDS_IN_WAIT
117 control file sequential read 0
139 Streams AQ: waiting for messages in the queue 5
135 wait for unread message on broadcast channel 11
134 jobq slave wait 454 rows selected
SID EVENT SECONDS_IN_WAIT
139 Streams AQ: waiting for messages in the queue 0
135 wait for unread message on broadcast channel 12
134 jobq slave wait 463 rows selected
SID EVENT SECONDS_IN_WAIT
139 Streams AQ: waiting for messages in the queue 3
135 wait for unread message on broadcast channel 15
134 jobq slave wait 493 rows selected
SID EVENT SECONDS_IN_WAIT
139 Streams AQ: waiting for messages in the queue 3
135 wait for unread message on broadcast channel 15
134 jobq slave wait 493 rows selected
SID EVENT SECONDS_IN_WAIT
139 Streams AQ: waiting for messages in the queue 3
135 wait for unread message on broadcast channel 15
134 jobq slave wait 253 rows selected
SID EVENT SECONDS_IN_WAIT
139 Streams AQ: waiting for messages in the queue 0
135 wait for unread message on broadcast channel 15
134 jobq slave wait 253 rows selected
SID EVENT SECONDS_IN_WAIT
139 Streams AQ: waiting for messages in the queue 3
135 wait for unread message on broadcast channel 18
134 jobq slave wait 283 rows selected
31 de outubro de 2008 às 8:04 pm #83440Ricardo Portilho Proni
ParticipantePode ignorar estes Eventos, são eventos ociosos.
No momento destes SELECTS as sessões não estavam com lentidão, não estavam esperando por nada.
Veja se aparece mais algum evento, fora estes.31 de outubro de 2008 às 11:50 pm #83446Rodrigo Almeida
ParticipanteTire um relatório de AWR para coletar mais informações nas questões de performance, e poderá utilizar DBMS_STATS.GATHER_SYSTEM_STATS no momento das lentidões para atualizar as estatísticas de hardware.
Levando em consideração que está utilizando o 10g.
Abraços,
1 de novembro de 2008 às 1:33 am #83449Ricardo Portilho Proni
ParticipanteSabe tirar o AWR do período com problema?
Dá pra ser pelo EM.2 de novembro de 2008 às 8:33 pm #83452Rodrigo Almeida
ParticipanteSe tiver dúvidas para tirar o AWR manualmente, faça o seguinte:
Execute o script que está no RDBMS/ADMIN, exemplo:
SQL>@$ORACLE_HOME/rdbms/admin/awrrpt.sql
.. Depois entre com os dados para o nome do relatório e os intervalos do SNAPSHOTS, veja as datas que ocorreram os problemas e entre os valores do SNAPSHOTS.
Por padrão no AWR, é gerado um SNAPSHOT a cada 1 hora.
Se achar muito complicado, faça igual ao Ricardo mencionou, tire usando o DBControl (EM) que é um meio mais fácil.
Abraços,
6 de novembro de 2008 às 3:20 pm #83576Anônimo
[quote=”hermesmc”:3kutibc7]Senhores,
Estou administrando um banco de dados ORACLE 10g que roda em um servidor windows 2003 enterprise edition. Estou notando uma queda sensível de performance no decorrer do dia. Notando isso, atualizo suas estatísticas(exec dbms_stats.gather_schema_stats(‘XXX’)) e a performance volta ao normal. Porém, tenho de fazer isso várias vezes durante o dia. O que poderia estar causando essa queda de peformance?
Grato[/quote]
roda esse script que sau performace vai melhorar estava com o mesmo problema e meu professor me passou
SPOOL ANALISE
SELECT ‘ANALYZE TABLE ‘||TABLE_NAME||’ ESTIMATE STATISTICS;’
FROM USER_TABLES;
SPOOL OFF
@ANALISE.LSTSPOOL ANALISE2
SELECT ‘ANALYZE INDEX ‘||INDEX_NAME||’ ESTIMATE STATISTICS;’
FROM USER_INDEXES;SPOOL OFF
@ANALISE2.LST6 de novembro de 2008 às 5:01 pm #83581Ricardo Portilho Proni
ParticipanteSe é 10g, as estatísticas já são atualizadas por um job do sistema as 22:00, todos os dias.
8 de novembro de 2008 às 12:19 am #83624Rodrigo Almeida
ParticipanteE também não utilize o comando ANALYZE TABLE | INDEX, pois causa problemas ao CBO do Oracle 10g ao cálcular as estatísticas, use sempre o DBMS_STATS.
Abraços,
-
AutorPosts
- Você deve fazer login para responder a este tópico.