----- 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