Srs

Estou com o seguinte problema , tenho a funcao abaixo que utilizo para
manipular os registros da tabela_1 e tabela_2 , sendo que a tabela_1 possui
aproximandamente 20 milhoes e a tabela 2 possui aproximadamente 10 milhoes
de registros.

Tentei descrever a funcao  de uma maneira sucinta,porem o objetivo da mesma
sera manter dados historicos quando o registro da tabela_1 for diferente da
tabela_2, irei fazer isto com as outras interacoes na function.

Mas meu problema esta na performance da mesma, para fazer a leitura dos
registros, ela demora mto tempo.Gostaria de alguma dica para tentar resolver
este problema.

Desde ja grato pela atencao.









CREATE OR REPLACE FUNCTION teste_funcao (porcao integer)
  RETURNS boolean AS
$BODY$
DECLARE


 resultado boolean;
 reg_proc record;
 reg_rel record;
 stringCnpjs text ='';
 first boolean =true;



BEGIN

 resultado := true;



 --BEGIN
 for reg_proc in



  select
   col_1 ,
   col_2 ,
   col_4 ,
   col_5 ,
   col_6,
   col_7,
   col_8,
   col_9,
   col_10,
   col_11,
   col_12,
   col_13,
   col_14,
   col_15,
   col_16,
   col_17,
   col_18,
   col_19,
   col_20,
   col_21,
   col_22,
   col_23,
   col_24

   from tabela_1
    where  a.col_1=2  and col_2=0
    limit porcao

loop


 select
      col_1,
      col_2,
      col_3,
      col_4,
      col_5,
      col_6,
      col_7,
      col_8,
      col_9,
      col_10,
      col_11,
      col_12,
      col_13,
      col_14,
      col_15,
      col_16,
      col_17,
      col_18,
      col_19
      into reg_rel ---armazena no cursor implicito da tabela de
relacionamento
  from tabela_2     rf
   where  rf.col1=reg_proc.col2;







 If found then



   begin

     update tabela_2
      set col_1=reg_proc.col_1,
       col_2=reg_proc.col_2
     where  col1=reg_proc.col2;
   end;


 end loop;


    return true;
--EXCEPTION
 --when others then return false;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 10000;
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a