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
  

Mensagemem Seg, 24 Out 2005 9:59 am

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:

Código: Selecionar todos
IF mod(c_Actype%rowcount,10000)= 0 then
    COMMIT;
END IF;


Obrigada,

Márcia
Márcia de Paiva Salles
Localização: DF

Mensagemem Seg, 24 Out 2005 1:49 pm

Dá pra usar um contador.

Código: Selecionar todos
  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.
dr_gori
Localização: Portland, OR USA

Thomas F. G

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

Mensagemem Seg, 24 Out 2005 3:44 pm

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 :( !
Márcia de Paiva Salles
Localização: DF



Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Google [Bot] e 6 visitantes