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

      Boa tarde,

      Preciso identificar um problema em uma aplicação e estou tentando verificar quais as querys que esta aplicação executa no banco. Pesquisando na internet, encontrei a query abaixo:

      fonte: http://searchoracle.techtarget.com/answ … e-database

      col stmtid heading ‘Stmt Id’ format 9999999999
      col dr heading ‘PIO blks’ format 999,999,999
      col bg heading ‘LIOs’ format 999,999,999
      col sr heading ‘Sorts’ format 999,999
      col exe heading ‘Runs’ format 999,999,999
      col rp heading ‘Rows’ format 9,999,999,999
      col rpr heading ‘LIOs|per Row’ format 999,999,999
      col rpe heading ‘LIOs|per Run’ format 999,999,999
      col sqltxt heading ‘SQL Statement’ format A25 word_wrapped

      set pause on
      set pagesize 30
      set pause ‘More: ‘
      set linesize 120

      select s.hash_value stmtid ,
      t.sql_text sqltxt ,
      sum(s.disk_reads) dr ,
      sum(s.buffer_gets) bg ,
      sum(s.rows_processed) rp ,
      sum(s.buffer_gets)/greatest(sum(s.rows_processed),1) rpr ,
      sum(s.executions) exe ,
      sum(s.buffer_gets)/greatest(sum(s.executions),1) rpe
      from v$sql s, v$sqltext t
      where s.command_type in ( 2,3,6,7 )
      and s.hash_value = t.hash_value
      group by s.hash_value, t.sql_text
      order by 5 desc

      Fiz umas alterações para pegar sid, username, osuser, machine.

      select o.sid, o.username, o.osuser, o.machine, s.hash_value stmtid ,t.sql_text sqltxt ,sum(s.disk_reads) dr ,sum(s.buffer_gets) bg ,
      sum(s.rows_processed) rp ,sum(s.buffer_gets)/greatest(sum(s.rows_processed),1) rpr ,
      sum(s.executions) exe ,sum(s.buffer_gets)/greatest(sum(s.executions),1) rpe
      from v$sql s, v$sqltext t, v$session o
      where s.command_type in ( 2,3,6,7 )
      and s.hash_value = t.hash_value
      and o.sql_hash_value = s.hash_value
      group by o.sid, o.username, o.osuser, o.machine, s.hash_value, t.sql_text
      order by 9 desc

      Até conseguiu visualizar a consulta mas não os parâmetros que foram passados. É possível ver os parâmetros (valor)?

      Select ldtext
      from longdescription
      where ldownertable = :1
      and ldownercol = :2
      and ldkey = :3

      Se alguém tiver outra query que retorne informações sobre os comandos que estão sendo executados agradeço.

      Obrigado.

      Airton

      #105136
      Fábio Prado
      Participante

        @airoosp,

        Eu utilizo a query abaixo em 10G e 11G e acredito que ela deva funcionar também no 9i:

          select        u.username,
                          sc.username as schemaname,                      
                          a.executions,                       
                          a.cpu_time/(1000000) "cpu_time (s)",
                          a.disk_reads,
                          a.elapsed_time/(1000000) "elapsed_time (s)",
                          (a.sharable_mem + a.persistent_mem + a.runtime_mem) /1024/1024 "used_memory (mb)",
                          a.first_load_time,
                          TO_CHAR(a.last_load_time,'dd/mm/yy HH24:mi:ss') last_load_time,
                          a.buffer_gets,
                          a.sorts,
                          a.loads,
                          a.application_wait_time/(1000000) "application_wait_time (s)",
                          a.concurrency_wait_time/(1000000) "concurrency_wait_time (s)",
                          a.user_io_wait_time/(1000000) "user_io_wait_time (s)",
                          a.plsql_exec_time/(1000000) "plsql_exec_time (s)",
                          a.rows_processed,
                          a.optimizer_mode,
                          a.optimizer_cost,                      
                          --a.sql_text,
                          DBMS_LOB.SUBSTR(a.SQL_FULLTEXT, 4000,1) sql_text
            from          v$sqlarea a
            INNER JOIN    dba_users u
                  ON      a.parsing_user_id = u.user_id
            INNER JOIN    dba_users sc
                  ON      a.parsing_schema_id = sc.user_id
            --where          a.command_type = 3
            -- and            SC.username = 'USER_NAME';
        

        []s

        #105140
        airoosp
        Participante

          É no 9i não funciona, não tem a coluna a.SQL_FULLTEXT na v$sqlarea.

          #105144
          Fábio Prado
          Participante

            Altere a query para retornar somente “a.sql” e comente a linha que contém a.SQL_FULLTEXT e veja se funciona.

            #105146
            rman
            Participante

              @airoosp e @fbifabio

              Não entendo por que não utilizar o Enterprise Manager para isso ?

              #105147
              airoosp
              Participante

                No 9i a query abaixo funcionou, vários campos foram comentados.

                select u.username,
                sc.username as schemaname,
                a.executions,
                a.cpu_time/(1000000) “cpu_time (s)”,
                a.disk_reads,
                a.elapsed_time/(1000000) “elapsed_time (s)”,
                (a.sharable_mem + a.persistent_mem + a.runtime_mem) /1024/1024 “used_memory (mb)”,
                a.first_load_time,
                –TO_CHAR(a.last_load_time,’dd/mm/yy HH24:mi:ss’) last_load_time,
                a.buffer_gets,
                a.sorts,
                a.loads,
                –a.application_wait_time/(1000000) “application_wait_time (s)”,
                –a.concurrency_wait_time/(1000000) “concurrency_wait_time (s)”,
                –a.user_io_wait_time/(1000000) “user_io_wait_time (s)”,
                –a.plsql_exec_time/(1000000) “plsql_exec_time (s)”,
                a.rows_processed,
                a.optimizer_mode,
                –a.optimizer_cost,
                a.sql_text
                –DBMS_LOB.SUBSTR(a.SQL_FULLTEXT, 4000,1) sql_text
                from v$sqlarea a
                INNER JOIN dba_users u
                ON a.parsing_user_id = u.user_id
                INNER JOIN dba_users sc
                ON a.parsing_schema_id = sc.user_id
                –where a.command_type = 3
                — and SC.username = ‘USER_NAME’;

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