Pular para o conteúdo
  • Este tópico contém 5 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 9 meses atrás por hudsonrj28.
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #81940
    mpvargas
    Participante

      Caros Amigos,
      É possível monitorar uma instrução de SQL no Oracle, quero dizer, se um usuário executa um select ou update, por exemplo, como posso fazer para ver qual registro o banco está lendo num determinado momento ou qual registro está sendo atualizado? No DB2 eu utilizava o “Snapshot”… no Oracle tem como fazer isso? Obrigado.

      #81941
      Marcio68Almeida
      Participante

        pode fazer algo parecido usando triggers, mas o que exatamente quer saber ???

        #81942
        mpvargas
        Participante

          Normalmente os analistas que trabalham comigo colocam alguns processos para rodar (select, update, delete, etc) e sempre perguntam em qual linha ou registro está no momento. No DB2 eu ativava o snapshot (via linha de comando) quando ia executar algum processo e conseguia monitorá-lo, tipo, se era um update, eu conseguia enxergar quantas linhas já tinham sido atualizadas naquele momento, … no Oracle eu uso o EM e o Spotlight para monitorar, mas não encontrei nada parecido.

          #81943
          Marcio68Almeida
          Participante

            realmente, não tem como saber, pelo menos até onde eu conheço…
            a menos que o processo faça esse trabalho de contagem e fique dando “dicas” no decorrer do processo… dbms_uotput

            #81974
            vieri
            Participante

              procure pela ferramente ORACLETOOLS escrita em PEARL ….

              A parte de monitoração de sessão é um show à parte !!

              Não é mto famosa pela interface pobre.. mais seus scripts são poderosos e complexos e mostra tudo oque o ORACLE tem a oferecer…

              Inclusive oque vc almeja….

              #82027
              hudsonrj28
              Participante

                Veja se a querie abaixo ajuda. Ainformação desejada está em rows_processed.

                SELECT s.username, s.SID, s.serial#, c.buffer_gets, c.sorts, c.rows_processed,
                TO_CHAR (s.logon_time, ‘DD-MM-RRRR HH24:MI:SS’) AS “HORARIO”, t.status,
                c.sql_text
                FROM v$transaction t, v$sqlarea c, v$session s
                WHERE s.saddr = t.ses_addr AND s.sql_address = c.address;

                Abraço

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