El día 23 de enero de 2009 10:46, Jose Luis Balle
<[email protected]> 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 <[email protected]>:
>> 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


>>
>>      Yahoo! Cocina
>> Recetas prácticas y comida saludable
>> http://ar.mujer.yahoo.com/cocina/
>> --
>> TIP 8: explain analyze es tu amigo
>>
> --
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
>    (envía "unregister TuDirecciónDeCorreo" a [email protected])
>



-- 
      Emanuel Calvo Franco
   ArPUG / AOSUG Member
 Postgresql Support & Admin
--
TIP 4: No hagas 'kill -9' a postmaster

Responder a