Pular para o conteúdo
Visualizando 14 posts - 1 até 14 (de 14 do total)
  • Autor
    Posts
  • #83150
    Susu
    Participante

      Olá Pessoal,

      Eu recebi um alerta no meu banco:
      43,4 -> A execução de código PL/SQL consumiu um tempo de banco de dados significativo.
      Fui ver qual a instrução que estava sendo executada

      BEGIN EMD_NOTIFICATION.QUEUE_READY(:1, :2, :3); END;
      E estava consumindo CPU(96%)

      O que eu poderia fazer para resolver esse problema, que tipo de query é essa?

      Obrigada
      Suzana

      #83153
      Ricardo Portilho Proni
      Participante

        Não sei o que esta procedure faz, mas consumir 96% do tempo do seu banco não quer dizer muita coisa, se seu banco não estivesse fazendo quase nada.
        Ou p servidor estava com osoutros processos lentos mesmo?

        #83161
        Ricardo Portilho Proni
        Participante

          Descobri o que este SQL faz, ele eh chamado pelo proprio Enterprise Manager.
          Se este SQL estah deixando seu banco lento, desligue o EM.

          #83165
          Susu
          Participante

            Mas como vou monitorar? Se eu uso o Enterprise 🙁

            Não entendi muito.
            Vc usa alguma outra ferramenta sem ser o Enterprise?

            Abraços
            Suzana

            #83167
            Ricardo Portilho Proni
            Participante

              Uso o SQL*Plus 🙂
              Mas seu servidor estah lento mesmo?

              #87228
              berlotto
              Participante

                Olá Ricardo e Susu,

                Estou com o mesmo problema no meu banco de dados, tenho este processo que roda volta e meia e fica trancando sua sessão por muito tempo e deixando o banco muito lento.

                Como desabilito o enterprise manager no linux, alguem sabe ?
                Obrigado pela ajuda…

                #87237
                David Siqueira
                Participante

                  Salve Berlotto, Susu e Brother Portilho…
                  Berlotto use essas informações pra entender e como proceder para retirar e colocar no ar ( se preciso) seu entreprise manager:

                  http://download-west.oracle.com/docs/html/B12013_03/emctl.htm

                  Abraço á todos!!!

                  David

                  #87238
                  berlotto
                  Participante

                    Caro Drbs,

                    Muito obrigado pelo Link !
                    Vou averiguar se desabilitando o DM vai parar aquele processo mesmo …

                    #87240
                    Marcio68Almeida
                    Participante

                      [quote=”Susu”:1t1xutim]Mas como vou monitorar? Se eu uso o Enterprise 🙁

                      Não entendi muito.
                      Vc usa alguma outra ferramenta sem ser o Enterprise?

                      Abraços
                      Suzana[/quote]

                      Pessoal, é MUITO importante aprender a monitorar o Oracle fora das ferramentas gráficas, por dois motivos simples.
                      1. Ferramentas gráficas são pesadas e degradam o próprio banco, como vocês puderam notar.
                      2. Quando tiverem que dar suporte remoto, não vão ter essas ferramentas para salva-los…

                      #87244
                      berlotto
                      Participante

                        Eu utilizo bastante o conhecimento via linha de comando.
                        Utilizo mais o Oracle SQLDeveloper mesmo para criar as querys e fazer o explain plan…
                        Mas como não fico o tempo todo cuidando o Oracle, quando dá uns pipinos assim eu me aperto… heheh

                        Agora só quero matar um job que está rodando com o seguinte comando:
                        BEGIN EMD_NOTIFICATION.QUEUE_READY(:1, :2, :3); END;

                        Mas quando tento derrubar o EM (emctl stop agent) diz que não foi possível…

                        TZ set to Brazil/East
                        Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
                        Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
                        This will stop the Oracle Enterprise Manager 10g Database Control process. Continue [y/n] :y
                        Stopping Oracle Enterprise Manager 10g Database Control …
                        — Failed to shutdown DBConsole Gracefully —
                        failed.
                        unable to stop Oracle Enterprise Manager 10g Database Control.

                        Alguma dica ? Este processo está matando minha maquina…

                        #87245
                        Marcio68Almeida
                        Participante

                          [quote=”berlotto”:15iwtxqn]Alguma dica ? Este processo está matando minha maquina…[/quote]
                          Por que não dá kill -9 no processo ???

                          #87246
                          berlotto
                          Participante

                            Boa..

                            Seria este processo ?
                            /u01/app/oracle/product/10.2.0/db_1/bin/emagent

                            Acho que sim neh .. o agente do EM ! 😮

                            #87247
                            Marcio68Almeida
                            Participante

                              [quote=”berlotto”:3aja445h]Boa..

                              Seria este processo ?
                              /u01/app/oracle/product/10.2.0/db_1/bin/emagent

                              Acho que sim neh .. o agente do EM ! 😮 [/quote]

                              No v$session você tem o PID do processo a ser morto.
                              Uma consulta boa para ajudar a verificar os processos ativos :
                              Select p.spid, s.sid, s.serial#, s.username, s.osuser, s.status, s.logon_time,
                              TO_CHAR (TRUNC (last_call_et / 3600), '009') || ':' ||
                              Case When TRUNC (last_call_et / 3600) >= 1 Then
                              TO_CHAR (MOD ((last_call_et - (3600 * TRUNC (last_call_et / 3600))) / 3600, 2) * 60, '09')
                              Else
                              TO_CHAR (MOD (last_call_et / 3600, 2) * 60, '09')
                              End inatividade, s.machine, s.program, sql.sql_text, s.server, c.buffer_gets, c.sorts, c.rows_processed, t.status,
                              p.pga_used_mem, p.pga_alloc_mem, p.pga_freeable_mem, pga_max_mem
                              From v$session s, v$process p, v$sqlarea c, v$transaction t,
                              (Select distinct sql_text, address
                              From v$sql sql ) sql
                              Where s.username is not null
                              And s.status = 'ACTIVE'
                              -- And s.status not in ('SNIPED', 'KILLED')
                              And s.paddr = p.addr (+)
                              And s.saddr = t.ses_addr (+)
                              And s.sql_address = sql.address (+)
                              And s.sql_address = c.address
                              Order by s.last_call_et desc;

                              #87248
                              berlotto
                              Participante

                                Pô .. valeu !
                                otima query !

                                Vou utilizar bastante …
                                deu certo, aquele processo morreu e parou de rodar…
                                Obrigado a todos pela ajuda !

                              Visualizando 14 posts - 1 até 14 (de 14 do total)
                              • Você deve fazer login para responder a este tópico.