Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #87751
    RCBMaps
    Participante

      Preciso ver o consumo de memória no banco de um SQL gerado por um programa logado por um usuario, alguem poderia me informar alguma ferramenta que me mostra essa informação, ou seja analizar uma consulta sendo dela todo o seu consulmo.

      #87752
      Marcio68Almeida
      Participante

        Aqui no GPO eu mesmo já postei algumas consultas que podem te ajudar.
        Mas você pode usar ferramentas gráficas como o TOAD ou o SQL Navigator
        O próprio Oracle Manager tem essa função, dependendo da versão do seu banco, há ferramentas mais detalhadas, não sei o 11g, mas o 10g é bem interessante.

        #87753
        RCBMaps
        Participante

          Estou com a versão 10G, estou vendo pelo Enterprise porem queria saber como faço para filtrar o usuario, estou mandando uma figura de como estou vendo.

          #87758
          David Siqueira
          Participante

            Olá!!..desculpe a intromissão, veja se isso te ajuda:

            clear col
            clear buffer
            clear breaks
            clear computes

            SET LINESIZE 1000
            set pages 100

            COL username FOR A20 heading 'User|Name'
            col inst_id for 999 heading 'Inst|Id'
            COL module FOR A30 heading 'Module'
            col program for a30 heading 'Program'
            col memory_Mb for 999999 heading 'Memory|Mb'

            break on username on inst_id on report skip 2

            compute sum of memory_Mb on username skip 1
            compute sum of memory_Mb on report

            select a.inst_id,
            a.sid,
            nvl(a.username,'(oracle)') as username,
            a.module,
            a.program,
            trunc(b.value/1024/1024) as memory_mb
            from v$session a,
            v$sesstat b,
            v$statname c
            where a.sid = b.sid
            and a.inst_id = b.inst_id
            and b.statistic# = c.statistic#
            and b.inst_id = c.inst_id
            and c.name = 'session pga memory'
            and a.program is not null
            and a.username like upper(nvl('%&usr%',a.USERNAME))
            and a.inst_id like nvl('&istid',a.INST_ID)
            order by a.inst_id,
            a.module,
            a.program desc;

            O Output dele é esse:

            Inst User Memory
            Id SID Name Module Program Mb


            1 637 DPD PL/SQL Developer PLSQLDev.exe 1
            638 PL/SQL Developer PLSQLDev.exe 0
            647 PL/SQL Developer PLSQLDev.exe 0
            **** ******************** -------
            sum 1
            1 629 SYSTEM SQL*Plus sqlplus.exe 0
            **** ******************** -------
            sum 0
            1 635 DPD TOAD 9.1.0.62 toad.exe 0
            **** ******************** -------
            sum 0
            -------
            sum 1

            Abraço.

            #87765
            vieri
            Participante

              caso queita um histórico mais detalhado do que o usuário executou ligue o trace para a sessão que quer monitorar.

              EXEC SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION( , ,false);

              #87784
              RCBMaps
              Participante

                Acho que achei o que eu queria na ferramenta do Oracle em Detalhes da Sessão.

                Obrigado pela as idéias.

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