Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #85094
    jspaulonci
    Participante

      Bom dia pessoal, a um ano atrás eu tive a missão de migrar a coleta de estatísticas de analyze para dbms_stats, esse projeto foi em 15 bases, a menor tinha 50 Gb e a maior 4 tb, as menores foi tranquilo, mas a grande tive problemas que nem a Oracle soube me explicar, quando rodei o DBMS_STATS alguns planos de execução mudaram , alguns indices deixaram de ser usados enfim….. mas ontem um amigo meu desenvolvedor postou uma afirmação e quero perguntar pra vocês se já viram coisa do tipo, eu li muito sobre ANALYZE X DBMS_STATS, mas não econtrei nada a respeito, segue abaixo…por favor leiam.

      [color=red]”O analyze nas tabelas realmente é algo muito importante no banco e faz parte de algo conhecido como CBO (Cost Based Optimizer) onde nas futuras versoes do banco a Oracle já informou que irá descontinuar o RBO (Rule Based Optimizer).

      Algo a se tomar cuidado com o CBO é que nem todas as aplicacoes nao suportam analyze em tabelas. Geralmente aplicacoes que utilizam bind variables nao sao boas candidatas ao uso do analyze porque pode deixar o banco mais lento porque o optimizador nao sabe qual o valor passado e nao sabe qual estatistica utilizar.

      O analyze table também nao é mais aconselhado desde a versao 8i por consumir muito recurso.

      O ideal é utilizar a package dbms_stats para coletar estatisticas de tabelas e indices. Este package pode coletar estatisticas de um schema inteiro, ou so de tabela ou so de indice e ainda pode gerar histogramas e excluir as estatisticas.

      Algo muito importante também quando esta utilizando o CBO é coletar estatisticas do sistema. Com estas estatisticas, o banco sabe o tempo de acesso a disco, cpu e memoria. Juntamente com as estatisticas atualizadas das tabelas ele consegue escolher o melhor caminho para acesso aos dados.”[/color]

      Spaulonci

      #85097
      David Siqueira
      Participante

        João meu amigo!!…
        Esse assunto é como discutir futebol, ha uma série de questões e de pormenores que deveriam ser levados em consideração, a discontinuidade do RBO é certeza que já vem ocorrendo desde a chegada do 10G, no próprimo manual do DBA 10g eles já dão uma idéia quando falam de CBO e RBO, quanto a questão do analyze u dbms basta fazer aquele teste bem simples que sempre fazemos, passe o analyze na tabela e veja o plano de execução , delete as estatiticas de analyze table e passe a DBMS_STATS é incrivel a diferença, é óbvio que devio a imensa diferença de possibilidades de analyzes que a DBMS_STATS proporciona ao DBA com certeza é muito mais eficiente do que o ANALYZE TABLE que tem apenas as opçoes básicas, porem em databases menores funciona muito bem, levando em consideração uso de indices e de uma boa escrita de Query’s, que acredito ser o terror de todo DBA, fazer tunning em querys mau formadas é como deparar com um dragão de 7 cabeças, por vezes vocÊ fica ali olhando e nada resolve, mais enfim acredito que a DBMS é sempre melhor na minha opinião, posso estar enganado mais sempre obtive ótimos resultados com ela.
        Abcs á todos!!!!
        David.

        #85100
        Rodrigo Almeida
        Participante

          Direto e objetivo.

          No Oracle 10g use sempre o DBMS_STATS. Diferenças com o ANALYZE são inumeras, desde a diferença interna do CBO, e as opções de coleta que o DBMS_STATS permite, em relação ao simples ANALYZE muda muita coisa.

          ANALYZE era bom até o 8i, 9i já era bom usar DBMS_STATS, no 10g então!

          Abraços,
          Rodrigo Almeida

          #85113
          vieri
          Participante

            Outro conselho direto !

            Não misture, colete para todo o database com o
            mesmo metódo, existe sim diferenças !!
            entre os 2 métodos se não à oracle não faria recomendações,
            quando ele recomendam é pq não existe documentado
            mas é de conhecimento deles que pode vir a gerar problemas em alguns casos especificos não documentados, algumas querys podem melhorar , outras piorar é impossivel de prever.

            []s.

            #85190
            Ishii
            Participante

              Olá,

              Como já dito anteriormente…. “religião, política e futebol não se discute” venho usando o método Regra há anos e desde a versão 8.0.5 ouço a Oracle anunciar que ela será descontinuada mas até agora efetivamente ela não removeu nem no Oracle 11g, acho que o 11g tem mais recursos com relação a análise dos binds que as versões anteriores não tinham e tenho trabalhado na migração destas aplicações para CBO pois com o RBO há muitos índices e sempre alguns são totalmente desnecessários em vários casos.

              Concordo plenamente com o Vieri pois há queries que podem ser analisadas pelo Oracle mas há queries que devem ser otimizadas individualmente com uso de hints então não há muito que ficar em cima do Muro nesta situação e partir para o tuning caso a caso. Pois tenho utilizado uma aplicação que em um cliente tem uma otimização mas em outro tem um tipo diferente.

              []s Ishii

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