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

      E dai pessoal, tudo certo, é o seguinte preciso saber como se calcula a memória que cada processo que o usuário consome no servidor de Banco de Dados. Com isso tenho como avaliar/prever o comportamento do servidor antes de novas aplicações (conexões) entrarem em produção e dar um parecer se o servidor suportará a demanda.
      Se alguém tiver alguma dica para enviar desde já agradeço.

      Att.

      MPUNGAN

      #95810
      jspaulonci
      Participante

        Tente isso, some as duas últimas colunas, lembrando que essa query não está customizada para RAC

        SELECT e.SID, e.username, e.status, a.UGA_MEMORY, b.PGA_MEMORY
        FROM (select y.SID,
        TO_CHAR(ROUND(y.value / 1024/1024), 99999999) UGA_MEMORY
        from v$sesstat y, v$statname z
        where y.STATISTIC# = z.STATISTIC#
        and NAME = ‘session uga memory’) a,
        (select y.SID,
        TO_CHAR(ROUND(y.value / 1024/1024), 99999999) PGA_MEMORY
        from v$sesstat y, v$statname z
        where y.STATISTIC# = z.STATISTIC#
        and NAME = ‘session pga memory’) b,
        v$session e
        WHERE e.sid = a.sid
        AND e.sid = b.sid
        ORDER BY e.status, a.UGA_MEMORY desc

        #95814
        mpungan
        Participante

          Esses valores que vc colocou gera um resultado em megabytes? Gostaria de confirmar essa informação. Obrigado pela dica.

          #95817
          jspaulonci
          Participante

            Sim é mb

            #95820
            CleitonHanzen
            Participante

              Opá…

              Não se esqueça de verificar os Hits de memória do banco também, não adianta o “servidor” suportar novas conexões, se a SGA não suportará mais conexões. Se os Hits estiverem tranquilos, adicione as conexões “em lotes” (ex: de 20 em 20, de 30 em 30, etc…) e acompanhe o comportamento do banco através dos relatórios do AWR…. 😉

              #95830
              vieri
              Participante

                ==========================

                PGA – PROGRAM GLOBAL AREA

                SET LINESIZE 145
                SET PAGESIZE 9999

                COLUMN sid FORMAT 999 HEADING ‘SID’
                COLUMN oracle_username FORMAT a12 HEADING ‘Oracle User’ JUSTIFY right
                COLUMN os_username FORMAT a9 HEADING ‘O/S User’ JUSTIFY right
                COLUMN session_program FORMAT a18 HEADING ‘Session Program’ TRUNC
                COLUMN session_machine FORMAT a8 HEADING ‘Machine’ JUSTIFY right TRUNC
                COLUMN session_pga_memory FORMAT 9,999,999,999 HEADING ‘PGA Memory’
                COLUMN session_pga_memory_max FORMAT 9,999,999,999 HEADING ‘PGA Memory Max’
                COLUMN session_uga_memory FORMAT 9,999,999,999 HEADING ‘UGA Memory’
                COLUMN session_uga_memory_max FORMAT 9,999,999,999 HEADING ‘UGA Memory MAX’

                SELECT s.SID SID, LPAD (s.username, 12) oracle_username,
                LPAD (s.osuser, 9) os_username, s.program session_program,
                LPAD (s.machine, 8) session_machine,
                (SELECT ss.VALUE FROM v$sesstat ss, v$statname sn
                WHERE ss.SID = s.SID
                AND sn.statistic# = ss.statistic#
                AND sn.NAME = ‘session pga memory’) session_pga_memory,
                (SELECT ss.VALUE FROM v$sesstat ss, v$statname sn
                WHERE ss.SID = s.SID AND sn.statistic# = ss.statistic#
                AND sn.NAME = ‘session pga memory max’) session_pga_memory_max,
                (SELECT ss.VALUE
                FROM v$sesstat ss, v$statname sn
                WHERE ss.SID = s.SID
                AND sn.statistic# = ss.statistic#
                AND sn.NAME = ‘session uga memory’) session_uga_memory,
                (SELECT ss.VALUE FROM v$sesstat ss, v$statname sn
                WHERE ss.SID = s.SID AND sn.statistic# = ss.statistic# AND sn.NAME = ‘session uga memory max’) session_uga_memory_max
                FROM v$session s
                ORDER BY session_pga_memory DESC

                select sum(Trunc(b.value/1024)) AS memory_kb_total , a.username, a.machine,count(*) as “nu_sessoes”
                from
                gv$session a,
                gv$sesstat b,
                gv$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 program like ‘%SQL%’
                group by a.inst_id,a.username, a.machine
                ORDER BY memory_kb_total DESC;

                Teste estas também…

                A unica fez na vida que usei essas querys, foi para provar que conexões via ferramenta Client TOAD consome mais MEM do que as demais.

                E num relatóri gerencial para aprovar proibir ferramentas client em base de prod, pois consomem memôria do servidor mesmo sem rodar nada.

                Tuning de memória da intância existem outros métodos mas eficazes de ser fazer, alêm de análisar quanto cada sessão consome .

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