** Configuração:
Oracle Enterprise Edition 11.2.0.4.8ASM standaloneAIX 64 bitsOption - todas as 
de tuning

** Cenário:

Percebi um alto pico de concorrência (wait class) pelo gráfico do Cloud 
COntrol, resolvi então tirar um AWR no intervalo de 20 minutos aonde se deu o 
intervalo do problema.
No "Top 10 Foreground Events by Total Wait Time" encontrei os 2 eventos mais 
problemáticos:
a - latch: row cache objects (40% DBTIME)b - cursor: pin S wait on X (10% 
DBTIME)

Wait Classes by Total Wait Time
a - Concurrency (53% DB TIME)

Em TIME MODEL STATISCS verifiquei que:
a - parse time elapsed - (55% DBTIME)b - hard parse elapsed time (46% DBTIME)c 
- sql execute elapsed time (42% DBTIME)

BOm, até onde eu sei, analisando alguns pontos do relatório da para perceber 
que o problema de concorrência está na shared pool e que o está havendo um 
grande problema de HARD PARSES, fazendo com que o seja mais lento o acesso a 
shared pool, se estiver errado me corrijam.
Portanto, fui nos SQL's ordenados por PARSE para verificar se existe alguma 
consulta sem BIND, mas não encontrei: Segue os 3 TOPS SQL ordenados por parse.


SELECT COUNT(1) 
  FROM XUXA.VW_PROCESSO P 
 WHERE NOT EXISTS (SELECT 1 
                     FROM XUXA.INDICE_PROCESSO_MD IP 
               INNER JOIN XUXA.DOCUMENTO_XX_MD D 
                       ON IP.SEQ_DOCUMENTO = D.SEQ_DOCUMENTO 
                    WHERE IP.SEQ_PROCESSO_MD = P.SEQ_PROCESSO_MD 
                      AND D.IND_EXCLUIDO <> 'S' 
                      AND IP.DT_VALIDACAO IS NULL
                   ) 
   AND EXISTS (SELECT 1 
                 FROM XUXA.INDICE_PROCESSO_MD IP 
           INNER JOIN XUXA.DOCUMENTO_XXX_MD D 
                   ON IP.SEQ_DOCUMENTO = D.SEQ_DOCUMENTO 
                WHERE IP.SEQ_PROCESSO_MD = P.SEQ_PROCESSO_MD 
                  AND D.IND_EXCLUIDO <> 'S' 
                  AND IP.DT_VALIDACAO IS NOT NULL
              ) 
  AND NOT EXISTS (SELECT 1 
                    FROM XUXA.INDICE_PROCESSO_MD IP 
              INNER JOIN XUXA.DOCUMENTO_XXX_MD D 
                      ON IP.SEQ_DOCUMENTO = D.SEQ_DOCUMENTO 
                   WHERE IP.SEQ_PROCESSO_MD = P.SEQ_PROCESSO_MD 
                     AND D.IND_EXCLUIDO <> 'S' 
                     AND IP.DT_INDEXACAO IS NULL 
                     AND IP.COD_TIPO_PECA = '63'
                  ) 
  AND EXISTS (SELECT 1 
                FROM XUXA.INDICE_PROCESSO_MD IP 
           INNER JOIN XUXA.DOCUMENTO_XXX_MD D 
                   ON IP.SEQ_DOCUMENTO = D.SEQ_DOCUMENTO 
                WHERE IP.SEQ_PROCESSO_MD = P.SEQ_ PROCESSO_MD 
                  AND D.IND_EXCLUIDO <> 'S' 
                  AND IP.DT_INDEXACAO IS NOT NULL 
                  AND IP.COD_TIPO_PECA = '63'
              ) 
  AND P.COD_ST_PROC = '34'

2 - 


begin :result := sys.dbms_transaction.local_transaction_id; end;

3 - 

select condition from cdef$ where rowid=:1

Alguém poderia dar uma idéia do que eu possa fazer para evitar esse tipo de 
concorrência que está ocorrendo toda semana ?
O servidor possui 36GB de memória RAM e está sendo utilizado para o database 
apenas 12GB. 
Estava pensando em aumentar razoavelmente o tamanho da memória e deixar um 
tamanho minímo aceitável para a shared pool. Em relação ao primeiro SQL alguma 
coisa a ser analisada?





  • [oracle_br] Problema d... Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]

Responder a