Commit de 10.000 em 10.000 registros em pl/sql

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Márcia de Paiva Salles
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Ter, 11 Out 2005 6:10 pm
Localização: DF

Bom dia,


Gostaria de perguntar se alguém tem alguma dica para que um bloco pl/sql faça commit a cada 10.000 registros.
Utilizei a opção abaixo, mas ficou muito lento:

Selecionar tudo

IF mod(c_Actype%rowcount,10000)= 0 then
    COMMIT;
END IF;
Obrigada,

Márcia
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Dá pra usar um contador.

Selecionar tudo

  if vcont=10000
  then 
    vcont=0;
    commit;
  end if;

  vcont:=vcon+1;
Talvez ficou lento por causa dos 10.000. Talvez um commit de 1000 em 1000 ou 2 mil seja mais rápido, pois assim você não abusa tanto do rollback.
Márcia de Paiva Salles
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Ter, 11 Out 2005 6:10 pm
Localização: DF

Obrigada, dr_gori ! Fiz o teste com as duas opções e o tempo foi praticamente o mesmo, mas já descobri o problema... estava faltando um índice :( !
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 16 visitantes