Boa Tarde Eduardo, Entendi que você está querendo copia os dados de uma tabela para outra. Não entendi se você quer desmembrar esses dados ou simplesmente copiar. Outra questão é que essa copia será feita uma ou mais vezes?
Se for uma cópia simples, você poderia efetuar a carga fazendo um buffer de commits para evitar a geração de redo logs, simplificando sua carga de informações. Exemplo: DECLARE v_contador NUMBER(8) := 0; v_commit NUMBER(8) := 100; v_row_tbteste teste.tbteste%ROWTYPE; BEGIN FOR rc1 IN (SELECT * FROM tborigemdedados) LOOP v_row_tbteste := rc1; INSERT INTO teste.tbteste VALUES v_row_tbteste; ------------------------------------------------ -- commit a cada 100 registros -- v_contador := v_contador + 1; IF MOD(v_contador, v_commit) = 0 THEN COMMIT; END IF; ------------------------------------------------- END LOOP; COMMIT; END; Precisando de alguma ajuda estou a disposição. Att, Emerson S. Gaudêncio Em 31 de agosto de 2016 12:59, Eduardo Souza pjabran...@gmail.com [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: > > > Caros amigos, boa tarde! > > Estou criando uma procedure para carga de uma tabela (vazia) a partir de > uma que possui mais de 6.000.000 de linhas. Ela possui 335 colunas e cada > coluna possui um critério de seleção próprio, ou seja, são 335 selects > utilizando de 2 a 4 tabelas. Em muitas delas eu só preciso acessar 1ª > primeira linha de retorno do select. > > Levando-se em conta os devidos planos de execução acessando seus devidos > índices o que mais eu posso implementar visando a otimização/performance > desse processo? > > Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production > PL/SQL Release 12.1.0.2.0 - Production > "CORE 12.1.0.2.0 Production" > TNS for 64-bit Windows: Version 12.1.0.2.0 - Production > NLSRTL Version 12.1.0.2.0 - Production > > Grande abraço. > > >