Pular para o conteúdo
  • Este tópico contém 4 respostas, 3 vozes e foi atualizado pela última vez 10 anos, 9 meses atrás por Marcos Carraro.
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #107532
    Marcos Carraro
    Participante

      Bom Dia,

      Pessoal, estou habilitando o paralelismo em algumas tabelas onde mais tenho gargalo e quantidade de dados, porém quando rodo um explain o mesmo não retorna que esta utilizando o processamento paralelo.

      Para habilitar o paralelismo na tabela.
      alter table pedidos parallel (degree 4);
      alter table pedidos parallel 4;

      Explain da consulta
      explain plan for select count(*) from pedidos;

      Retorno
      select * from table(dbms_xplan.display())

      PLAN_TABLE_OUTPUT

      Plan hash value: 1649378907

      ———————————————————————————-
      | Id | Operation | Name | Rows | Cost (%CPU)| Time |
      ———————————————————————————-
      | 0 | SELECT STATEMENT | | 1 | 12457 (2)| 00:00:02 |
      | 1 | SORT AGGREGATE | | 1 | | |
      | 2 | INDEX FAST FULL SCAN| PEDIDOS_EMPR_FK | 23M| 12457 (2)| 00:00:02 |
      ———————————————————————————-

      Parametros
      parallel_adaptive_multi_user = true
      parallel_automatic_tuning = false
      parallel_threads_per_cpu = 10
      parallel_execution_message_size = 16384

      Alguém sabe o porque não funciona?

      Obs:. Também tentei fazer por hint e não funcionou.

      Desde já muito obrigado.
      Abraços

      #107533
      C-S-R
      Participante

        Ola Marcos,

        Acredito que o paralelismo so funcione em FTS, full table scan.

        Tente efetuar um select * e verifique se o paralelismo é utilizado.

        At
        Cesar

        #107534
        Marcos Carraro
        Participante

          Bom Dia Cesar,
          Sem sucesso, o resultado é o mesmo porém sem usar o index.

          #107535
          rman
          Participante

            @Marcos Carraro

            Geralmente todas as funcionalidade que envolve paralelismo fazem parte da versão Enterprise, mas segundo esse artigo existe apenas 1 funcionalidade que é disponível para a versão Standard, que é através do pacote DBMS_PARALLEL_EXECUTE.

            Segue o artigo para mais detalhes:

            http://antognini.ch/2010/09/parallel-processing-with-standard-edition/

            Como você não disse qual era a versão o Oracle Database, fica 2 dicas.

            Caso for Enterprise, segue outro artigo:

            http://www.orafaq.com/wiki/Parallel_Query_FAQ

            #107536
            Marcos Carraro
            Participante

              Boa Tarde

              @RMAN

              Realmente não tinha me atendado a versão do Oracle, é a Standard, utilizar o pacote DBMS_PARALLEL_EXECUTE envolveria na aplicação também (Assim foi o que entendi) e como a aplicação é terceiro não gostariam de alterar suas rotinas.

              Muito Obrigado pelas respostas.

              Abraços
              Marcos Carraro

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