Skip site navigation (1) Skip section navigation (2)

Mejorar update

From: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Mejorar update
Date: 2009-05-25 13:49:13
Message-ID: 825870.66886.qm@web52107.mail.re2.yahoo.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Tengo la siguiente funcion de actualizacion sobre una tabla muuuuuyyyy grande

CREATE OR REPLACE FUNCTION padrones.cargavectp()
  RETURNS void AS
$BODY$
declare
registro RECORD;
cuenta bigint;
terminar boolean;
begin
cuenta=0;
FOR registro IN SELECT * from padrones.personas where ((vectordatos is null) or (vectornombre is null)) LOOP 
  update padrones.personas set vectornombre=to_tsvector('spanish',coalesce(nombre,'')), vectordatos=to_tsvector('spanish',coalesce(datos,'')) 
    where clave=registro.clave;
  if registro.otrosnombres is not null then
    update padrones.personas set vectorotrosnombres=to_tsvector('spanish',coalesce(otrosnombres,'')) where clave=registro.clave;
  end if;
  cuenta=cuenta+1;  
  select public.basura.bandera into terminar from public.basura limit 1;
  if terminar=true then 
     raise notice 'ACTUALIZO %',cuenta;
     exit;
  end if; 
END LOOP; 
end;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION padrones.cargavectp() OWNER TO gferro;

Coo tarda muchisiimo, lo hice asi para poder pararla y luego reanuardarla, por eso no uso un simple update.
Existe alguna forma de acelerarla sin tener que perder la posibilidad de poder pararl/proseguir?


      Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/

In response to

Responses

pgsql-es-ayuda by date

Next:From: Mario Soto CordonesDate: 2009-05-25 13:53:29
Subject: RE: Ayuda con funcion
Previous:From: Fernandos SiguenzaDate: 2009-05-25 13:41:25
Subject: Ayuda con funcion

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group