Pular para o conteúdo
Visualizando 13 posts - 1 até 13 (de 13 do total)
  • Autor
    Posts
  • #99608
    Peterson
    Participante

      Boa tarde amigos,

      Vendo a view dba_tables, vi que algumas tabelas estão com datas muito antigas na coluna last_analyzed.

      Gostaria de saber o que faz essas análises periódicas, como são coletadas, com que periodicidade, se há um job que faz isso e porque algumas tableas são analisadas e outras não.

      Alguém teria uma sugestão de material ou link para eu verificar isso?

      #99609
      vieri
      Participante

        Fazem análise periodica dos seus dados,
        para o oracle ter informação atualizada sobre suas tabelas quando for escolher um plano de execução para qualquer query.

        Monte um processo para coletar as estátisticas toda semana.

        isso é o minimo que vc precisa fazer e saber…

        o máximo será a medida que vc ter problemas com performance…
        e acabará tendo se não coletar as estátisticas em dia , e não usar o metodo correto.

        Mas dependendo da complexidade do sistemas, basta estár em dia para te atender.

        #99610
        vieri
        Participante

          exemplo doque ele coleta:

          volumetria,
          armazanamento dos dados,
          cardinalidade,
          datatype,
          cardinalidade,
          composição dos dados…

          entre outras coisas mais complexas…

          etc..etc..

          pesquise no google por “analyze table compute statistics” e “dbms_gather_table_stats”.

          vc pode ter que dominar esse assunto ou apenas saber monta um job para coletar as estátisticas, isso vai depender do seu ambiente.

          eu ja tive um caso que eu tive que parar de coletar estatisticas de uma tabela. ja tive caso de ter que alterar o modo para estimate, pois a analyze foi demorada, ja tive caso de alterar árametros da coleta que são vários… e por ai vai…

          qualquer dúvida posta ai..

          #99611
          Peterson
          Participante

            Obrigado pela resposta Vieri.

            Gostaria de saber mais sobre as ferramentas de coletas de estatísticas, como criar jobs para fazer isso periodicamente e como visualizar o que há implementado atualmente.

            Onde consigo material sobre o assunto?

            #99612
            felipeg
            Participante

              [quote=”Peterson”:2m9xpj7k]Obrigado pela resposta Vieri.

              Gostaria de saber mais sobre as ferramentas de coletas de estatísticas, como criar jobs para fazer isso periodicamente e como visualizar o que há implementado atualmente.

              Onde consigo material sobre o assunto?[/quote]

              Peterson,

              Da uma olhada nesse link, tem tanto a parte de explicação como a parte de automatização.

              http://download.oracle.com/docs/cd/B193 … /stats.htm

              Atenciosamente,
              Felipe.

              #99618
              CleitonHanzen
              Participante

                Opá….

                Cara, esse negócio de estatísticas é bastante complicado e muito, mas muito específico para cada ambiente/aplicação.

                Já vi sistemas que se coletar estatísticas o sistema simplesmente não roda de jeito nenhum, já vi sistemas que a coleta tem q ser feita com o analyze (mesmo no 10g), já vi sistema que coleta com estimate_percent=1 funciona melhor do que estimate_percent=10, enfim, casos e casos.

                O que fica de dica é: Faça as coletas com parâmetros diferenciados e acompanhe desde o I/O e CPU do servidor até as diferenças de planos de execução gerados e quais são as melhorias de tempos/recursos obtidos. Algumas vezes gostaria que a Oracle tivesse uma “matemática” pra ajudar a encontrar a melhor forma, mas nem se vc abrir chamado na Oracle sai alguma coisa de “útil” sobre coleta de estatísticas.

                Então, o jeito é testar, testar e testar.

                Abs.

                #99620
                vieri
                Participante

                  eu particularmente uso a crontab no linux
                  e a DBMS_JOBS no oracle que apesar de antiga me atende bem.

                  para outros cenários é melhor a DBMS_SCHEDULER.

                  No windos o agendador de tarefas.

                  não foge muito disso dai.

                  #99621
                  vieri
                  Participante

                    o Chiappa é um cara que conhece muito de oracle tem conhecimento profundo sobra stats caso vc queira aprofunda-lo.

                    http://br.dir.groups.yahoo.com/group/or … 4935?var=1

                    #99624
                    Sousa04
                    Participante

                      se isso te ajudar em algo,
                      eu uso esse script na crontab do linux para realizar a coleta do ambiente, se mesmo após a execução do script a tabela continua com o last_analyzed antigo ou em branco, a tabela pode estar com a estatística bloqueada ou pode ser uma tabela temporária.

                      PROMPT coleta de statística
                      declare
                      v_dbms varchar2(800);
                      BEGIN
                      FOR I IN
                      (
                      select DISTINCT(OWNER)AS OWNER
                      from dba_tables
                      where owner not in(‘SYSTEM’,’OLAPSYS’,’IFSCTXTEST2′,’SYS’,’TSMSYS’,’MDSYS’,’IFSCTXTEST0′,’SYSMAN’,’IFSCTXTEST1′,’EXFSYS’,
                      ‘IFSCTXTEST3′,’WMSYS’,’ORDSYS’,’ORACACHE’,’CTXSYS’,’PERFSTAT’,’OUTLN’,’DBSNMP’,’DMSYS’,’XDB’)
                      and LAST_ANALYZED ‘||””||I.OWNER||””||’,ESTIMATE_PERCENT=>20,
                      METHOD_OPT=>’||””||’FOR ALL INDEXED COLUMNS SIZE AUTO’||””||’,GRANULARITY=>’||””||’ALL’||””||’,DEGREE=>8,CASCADE=>TRUE); END;’;
                      DBMS_OUTPUT.PUT_LINE(v_dbms);
                      EXECUTE IMMEDIATE v_dbms;
                      END LOOP;
                      END;
                      /

                      #99630
                      rman
                      Participante

                        Eu uso o seguinte comando:


                        ANALYZE TABLE COMPUTE STATISTICS;

                        Legal, que pode ser aplicar em indices também.


                        ANALYZE INDEX COMPUTE STATISTICS;

                        As estatísticas é a base para o Oracle montar o plano de executação mais eficiente. Realmente não existe nenhum job padrão que já venha no banco, para a coleta das estatísticas ?

                        #99634
                        Sousa04
                        Participante

                          Bem, segundo o meu manual aqui do 10G
                          se o banco de dados foi criado com o DBCA as estatísticas do atimizador serão coletadas automaticamente uma vez por dia entre 22 e 6 horas. Ele ainda diz que se a tabela sofre um crescimento ou diminuição de 10% no período de 24h a coleta uma vez por dia pode não ser suficiente. Ainda informa que é recomendável pela Oracle a coleta de estatística toda vez que tabela sofrer 10% de aumento/diminuição.

                          #99641
                          felipeg
                          Participante

                            [quote=”felipeg”:m6ukvw44][quote=”Peterson”:m6ukvw44]Obrigado pela resposta Vieri.

                            Gostaria de saber mais sobre as ferramentas de coletas de estatísticas, como criar jobs para fazer isso periodicamente e como visualizar o que há implementado atualmente.

                            Onde consigo material sobre o assunto?[/quote]

                            Peterson,

                            Da uma olhada nesse link, tem tanto a parte de explicação como a parte de automatização.

                            http://download.oracle.com/docs/cd/B193 … /stats.htm

                            Atenciosamente,
                            Felipe.[/quote]

                            Pessoal, bom dia

                            Apenas para saber.
                            Alguém chegou a ler as documentações que foram passadas nos posts acima?

                            Ali tem tanto as explicações sobres os tipos de coleta, o que é cada subtipo, coletas automáticas, jobs utilizados e tudo mais.

                            O link que o Vieri passou também é muito bom, o Chiappa é um monstro nessas coisas.

                            Atenciosamente,
                            Felipe.

                            #99655
                            Peterson
                            Participante

                              Amigos, muito obrigado! O material enviado é muito farto e tem ajudado muito a formar conceitos no que eu precisava!

                              Obrigado a todos!

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