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
<[email protected]>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
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral