Basicamente o problema enfrentado esta numa function que tentei descrever
abaixo ou em um update somente da tabela :

1-As tabelas1 e tabelas 2 possuem a mesma quantidade de registros (10
milhoes);
2-Na analise do explain o resultado eh satisfatorio;
3-Analisando a taxa de acerto pela consulta abaixo eu tenho 95,25;
select datname,(sum(blks_hit)/sum(blks_read+blks_hit)*100)::numeric(4,2) as
taxa from pg_stat_database where datname in ('bd1') group by datname;

4-Quando a function entra na segunda consulta para trazer o valor found ele
esta com uma demora, e na execucao do update tambem;

Obs!! Ainda nao consegui habilitar o log_checkpoints, ele cria o arquivo de
log porem nao joga as informacoes dentro do mesmo, estou em anlise para
saber o motivo.

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


 resultado boolean;
 reg_proc record;
 reg_rel record;




BEGIN

 resultado := true;

 --BEGIN
 FOR reg_proc in
   select
    campo1_primarykey ,
    campo2_datahora ,
    campo3,
    campo4 ,
    campo5,
    campo6,
    campo7,
    campo8,
    campo9,
    campo10,
    campo11,
    campo12,
    campo13,
    campo14,
    campo15,
    campo16,
    campo17,
    campo18


   from tabela_1

    where  campo2=22 and campo3=0
   order by camp1_primarykey
          LIMIT porcao
 loop
    select campo2_datahora,campo4,campo5 into reg_rel
    from tabela_2
     where campo1_primarykey=reg_proc.camp1_primarykey;

 If found then
   if (reg_proc.campo2_datahora > reg_rel.campo2_datahora) then
     begin
      update tabela_2 set campo2_datahora=reg_proc.campo2_datahora
          where campo1_primarykey=reg_proc.campo1_primarykey;
     end;
   end if;
 end if;
 end loop;
return true;
end ;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100000;





Em 13 de março de 2010 10:48, Euler Taveira de Oliveira
<eu...@timbira.com>escreveu:

> Tiago Valério escreveu:
> > De um registro nao demora tanto, mas eh lento. Quando eu faco o update
> > dos 20 milhoes ai sim demora o dia inteiro praticamente.
> >
> Sem a definição da tabela fica difícil afirmar algo mas eu desconfio que a
> maioria do tempo é gasto na execução de gatilhos.
>
>
> --
>  Euler Taveira de Oliveira
>  http://www.timbira.com/
>  _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a