Problema com Performace
Olá pessoal tudo bom???
Bom estou com a sequinte procedure:
DECLARE
COUNTER NUMBER := 0;
CURSOR c_custo IS
SELECT COD, CUSTO FROM tabela1
WHERE TIPO IN ('1');
atualiza_custo c_custo%ROWTYPE;
BEGIN
OPEN c_custo;
LOOP
FETCH c_custo INTO atualiza_custo;
EXIT WHEN c_custo%NOTFOUND;
COUNTER := COUNTER + 1;
UPDATE tabela2 SET tabela2.CUSTO = atualiza_custo.CUSTO
WHERE tabela2.DATA = '20071231'
AND tabela2.COD = atualiza_custo.COD;
IF COUNTER > 100 THEN
COMMIT;
END IF;
END LOOP;
CLOSE c_custo;
END;
COMMIT;
#######################
Bom na tabela1 e a tabela de produtos e a tabela2 é a tabela de movimentações entao na tabela2 tenho um produto varias vezes estava fazendo um update e estava demorando muito para atualizar quase 140000 registros, entao decidi colocar para "COMITA" a cada 100 registros, enquanto a procedure esta executando observei q o commit nao esta sendo de 100 em 100 registros.
Vcs sabem oq estou fazendo de errado nesse loop?????
Obrigado!!!!
Discussão (3)
Carregando comentários...