Re: Update muy largo

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/

In response to

Browse pgsql-es-ayuda by date

  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)