Skip to Main Content

Portuguese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Force Parallel com Índice Temporário

Thiago PenattiDec 25 2019 — edited Dec 25 2019

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

Comments
Post Details
Added on Dec 25 2019
0 comments
738 views