From: | Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Update muy largo |
Date: | 2009-01-27 10:07:34 |
Message-ID: | 73937.26708.qm@web52110.mail.re2.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> Gabriel Ferro escribió:
> > Siguiendo un poco con el hilo de mi post anterior, para recordarles tengo una
> funcion que recorre una tabla de personas y le agrega ceros a la izquierda a
> todos los numdoc.
> > Creo que la gran demora de esto (lleva casi 72Hs) es porque tengo un indice
> sobre el campo (numdoc) que estoy actualizando y como los los registros se
> insertaron secuencialmente desde archivos planos ordenados por nombres (y sin
> haber existido en ese momento el indice de numdoc)...por ende el UPDATE me hace
> registro por registro pero ordenados por numdoc y ahi es que demora tanto.... no
> se si mi cabeza anda mal ya que tengo 38 pirulitos pero creo recordar que (en
> cobol me parece) cuando se hacia una operacion SQL se podia indicar que indice
> usar, se puede hacer en postgres esto? en este caso especial indicarle a posgres
> que no use indices sino que realice un barrido secuencial, sin tener que borrar
> y luego recrear los indices?
> >
>
> Hola Grabriel,
>
> En la funcion que enviabas en el post anterior veo que lo unico que haces es
> completar un campo con ceros, lo cual no veo porque no lo haces directamente con
> una sentencia UPDATE:
>
> (Ojo sin probar)
>
> update
> padrones.personas
> set
> numdoc = repeat('0', 12-length(numdoc)) || numdoc
> where
> length(numdoc) < 12
>
> Esto deberia ser mucho mas rápido y eficiente que la funcion.
>
>
> Sobre el proceso que lleva 72 horas parece que demasiado tiempo. Yo miraria a
> ver si esta siendo bloqueado por algún otro, no recuerdo si esto se veia
> consultando la tabla pg_locks, o habia alguna funcion especifica para ello.
>
> Saludos,
>
> -- *****************************************
> Oswaldo Hernández
> oswaldo (@) soft-com (.) es
> *****************************************
Bueno... al final me canse de esperar y corte el proceso que ya llevaba varios dias. elimine todos los indices y trigers de la tabla he hice como como dijo Osvaldo, simplemente con el update y sin meterlo en una funcion. el proceso fue bastante rapido y tardo un par de horas... que sumado a la recrecion de los indices y triggers me llevo casi una mañana....
Desde ya agradezco a todos por las recomendaciones...
Saludazos.
Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/
From | Date | Subject | |
---|---|---|---|
Next Message | Gabriel Hermes Colina Zambra | 2009-01-27 10:49:59 | Re: mapeo de tipos de datos con vfp (el lenguaje) |
Previous Message | Julio Cesar Rodriguez Dominguez | 2009-01-26 23:50:14 | Re: mapeo de tipos de datos con vfp (el lenguaje) |