> 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/
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
               http://archives.postgresql.org/pgsql-es-ayuda

Responder a