0 Replies Latest reply on Dec 26, 2019 3:46 AM by Thiago Penatti

    Force Parallel com Índice Temporário

    Thiago Penatti

      Olá,

       

      Utilizo "alter session force parallel" para forçar os DDL serem executados em paralelo (quando é E.E) em uma rotina de atualização do software, eliminando a necessidade de adicionar PARALLEL a cada comando DDL (ex: create index). No final da atualização é feita a remoção do paralelismo utilizando "noparallel". O problema é que utilizando "force parallel" os índices temporários são criados sem nenhum erro e no dicionário consta o degree utilizado no "force parallel". Porém, ao tentar remover o paralelismo do índice que foi herdado na criação recebemos um ORA-14451. Se tentarmos criar o índice utilizando o comando "parallel" também recebemos um ORA-14451. Ou seja, o Oracle não suporta paralelismo em índices temporários.

       

      A dúvida é: o Oracle não deveria ignorar o "force parallel" para índices temporários e manter o degree no valor padrão?

       

      Alguém já passou por isso?

       

      Obrigado.

       

      SQL> create global temporary table Table_test (col number);

      Table created

       

      SQL> create index Table_test_idx on Table_test(col) parallel 8;

      ORA-14451: unsupported feature with temporary table

       

      SQL> alter session force parallel ddl parallel 8;

      Session altered

       

      SQL> create index Table_test_idx on Table_test(col);

      Index created

       

      SQL> select a.degree from user_indexes a where a.index_name = 'TABLE_TEST_IDX';

      DEGREE

      ----------------------------------------

      8

       

      SQL> alter index table_test_idx noparallel;

      ORA-14451: unsupported feature with temporary table