----- Mensaje original ----
> De: Emanuel Calvo Franco <[email protected]>
> Para: pgsql-es-ayuda <[email protected]>
> Enviado: viernes 23 de enero de 2009, 9:57:44
> Asunto: Re: [pgsql-es-ayuda] Update muy largo
> 
> El día 23 de enero de 2009 10:46, Jose Luis Balle
> escribió:
> > La verdad que no se si se puede hacer lo que decis... y si se pudiera
> > no se si sería recomendable, teniendo en cuenta que un update necesita
> > actualizar todos los indices necesarios para mantener la coherencia de
> > la data.
> > Entonces:
> > ¿no te conviene ponerle un trigger a la tabla para que los ceros se
> > agreguen en el momento de la insersion?
> > ¿probaste borrar el indice, hacer el update y crear nuevamente el indice?
> > Si el numdoc es numerico, ¿porque lo forzas a varchar?
> >
> > 2009/1/23 Gabriel Ferro :
> >> 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?
> >>
> 
> Una rule sería más rápida creo.
> Lo que podrías hacer es realizar explains modificando la consula hasta
> que encuentres la forma de que lo haga secuencial por nombre o sin 
> ordenamiento.
> Luego de terminado el proceso reindexar la tabla.
> 
> #enable_bitmapscan = on
> #enable_hashagg = on
> #enable_hashjoin = on
> #enable_indexscan = on
> #enable_mergejoin = on
> #enable_nestloop = on
> #enable_seqscan = on
> #enable_sort = on
> #enable_tidscan = on
> 
> podes poner en set enable_indexscan = off...
> desde psql
> 
> 
> -- 
>       Emanuel Calvo Franco
>    ArPUG / AOSUG Member
> Postgresql Support & Admin
> --
> TIP 4: No hagas 'kill -9' a postmaster

Complicadito el temaa..jee... no queria eso de eliminar update crear pero veo 
que sera lo mas practico.. pero ahora tengo un problemilla.. si corto el 
proceso con ctrl+C pierdo todo lo que hizo la funcion... habria una forma de 
hacerlo?



      Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/
--
TIP 5: ¿Has leído nuestro extenso FAQ?
         http://www.postgresql.org/docs/faqs.FAQ.html

Responder a