Pular para o conteúdo
Visualizando 10 posts - 1 até 10 (de 10 do total)
  • Autor
    Posts
  • #81947
    gordonsp
    Participante

      Bom dia a Todos!

      Estou enfrentando um problema que não sei como resolver, sendo assim passo a relatar abaixo.

      Tenho a consulta abaixo:

      select codigo_usu
      from
      avt_mov_usuario
      where codigo_gru=:1
      and DATA_MUS>:2 and DATA_MUS<=:3 and codigo_USU=:4 and TIPOMOV_MUS in ('ALEN','ALSA','ALAM') de uma semana para ca o tempo de resposta começou a ficar alto, ou seja, o retorno da consulta esta em torno de 15 s, mas se estiver em cache é instantaneo. Solicitei um trace ao cliente e obtive o seguinte retorno: ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 509 0.01 0.02 0 0 0 0 Execute 509 0.00 0.02 0 0 0 0 Fetch 509 4.79 274.71 43742 172147 0 17 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 1527 4.80 274.76 43742 172147 0 17 Misses in library cache during parse: 0 Optimizer goal: RULE Parsing user id: 60 (USCABGF) Rows Row Source Operation ------- --------------------------------------------------- 0 CONCATENATION 0 TABLE ACCESS BY INDEX ROWID AVT_MOV_USUARIO 0 INDEX RANGE SCAN IDX_AMU_CODTPGRU (object id 42781) 0 TABLE ACCESS BY INDEX ROWID AVT_MOV_USUARIO 95 INDEX RANGE SCAN IDX_AMU_CODTPGRU (object id 42781) 0 TABLE ACCESS BY INDEX ROWID AVT_MOV_USUARIO 94 INDEX RANGE SCAN IDX_AMU_CODTPGRU (object id 42781) Rows Execution Plan ------- --------------------------------------------------- 0 SELECT STATEMENT GOAL: RULE 0 CONCATENATION 0 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF 'AVT_MOV_USUARIO' 0 INDEX GOAL: ANALYZED (RANGE SCAN) OF 'IDX_AMU_CODTPGRU' (NON-UNIQUE) 0 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF 'AVT_MOV_USUARIO' 95 INDEX GOAL: ANALYZED (RANGE SCAN) OF 'IDX_AMU_CODTPGRU' (NON-UNIQUE) 0 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF 'AVT_MOV_USUARIO' 94 INDEX GOAL: ANALYZED (RANGE SCAN) OF 'IDX_AMU_CODTPGRU' Alguem saberia como resolver esse problema de performance? Vale ressaltar que essa tabela tem muitos inputs. Agradeço pela ajuda e fico no aguardo. Obrigado Anderson

      #81948
      Anônimo

        Esse índice IDX_AMU_CODTPGRU tem quais colunas ?

        #81949
        gordonsp
        Participante

          As colunas são:
          Codigo_usu, tipomov_mus, codigo_gru (ordem de criação).

          Só para conhecimento, existe um outro indice (IDX_AMU_GRDTUSTM), com os quatro campos do where.

          Espero ter ajudado.

          #81950
          Anônimo

            Você já verificou as estatísticas dessa tabela e seus índices ? Será que não pode ser isso ?

            #81952
            gordonsp
            Participante

              vDrago,

              Infelizmente não tenho conhecimento o suficiente para levantar essas informações, mas se tiver algum link ou documento que explique isso ficarei grato.
              Pela parte do trace que passei não tem como avaliar?

              Obrigado

              Anderson

              #81953
              Anônimo

                roda essa query e coloca o resultado aqui pra gente avaliar…

                select table_name, last_analyzed from user_tables
                where table_name = ‘AVT_MOV_USUARIO ‘;

                #81957
                gordonsp
                Participante

                  vdrago,

                  Segue abaixo o resultado da consulta:

                  1 select table_name, last_analyzed from user_tables
                  2* where table_name = ‘AVT_MOV_USUARIO’
                  SQL> /

                  TABLE_NAME LAST_ANALYZ


                  AVT_MOV_USUARIO 14-JUL-2007

                  Agradeço pela ajuda.

                  #81958
                  Anônimo

                    Como faz tempo que vc não atualiza as estatísticas, vamos tentar por esse caminho.

                    Quando vc puder, rode o script abaixo, ele atualizará as estatísticas do banco.

                    begin

                    dbms_stats.gather_schema_stats(‘OWNER’, cascade=>true) ;

                    end;

                    Lembrando que no lugar da palavra OWNER, vc colocará o nome do seu usuário no banco que possui as tabelas. Esse processo pode demorar muito tempo (dependendo do tamanho do seu banco), então, aconselho vc a fazê-lo em horário de menos pico de utilização.

                    Logo depois, vc roda a query e faz um trace novamente. Vamos ver se melhora a performance.

                    #81959
                    gordonsp
                    Participante

                      vDrago,

                      Gostaria de agradecer pelo seu apoio e irei fazer isso e tão logo tenha a resposta envio o resultado.

                      Obrigado

                      #81973
                      vieri
                      Participante

                        Só pra curiosidade…

                        Acho que seu banquinho está otimizado por REGRA de acordo com trecho no trace.

                        Misses in library cache during parse: 0
                        *******Optimizer goal: RULE*******
                        Parsing user id: 60 (USCABGF)

                        confira com um SQL>show parameters optimizer_mode

                        Caso seja isso…. pergunte a um DBA o pq disso.. ele lhe deve boas explicações…(caso tenham um DBA)…

                        caso não tenha altere o init.ora com o arquivo optimizer_mode=choose

                        []s

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