Hola,
tengo un update p_c set pc_d5c=null where pbv_id between 803 and 809.

El campo pc_d5c varchar(2) no está indexado.
El campo pbv_id si está indexado.
La tabla tienen 474818 registros
el analyze me muestra:

Update on p_c  (cost=0.00..50294.05 rows=606470 width=355)
  ->  Seq Scan on p_c  (cost=0.00..50294.05 rows=606470 width=355)
        Filter: ((pbv_id >= 803) AND (pbv_id <= 999))

Cuando la lanzo me ha tardado 212207 ms.

Hacia la mitad del tiempo se lanza autovacuum sobre la tabla p_c  y tarda un 
montón de tiempo en terminar, después incluso de que la consulta terminó (vamos 
que pensaba que se había quedado colgado). Si lanzo el vacuum analyze desde 
pgadmin, mata al autovacuum y termina en 102165 ms.

Aparecen varios mensajes de aumentar checkpoints segments en el log, por lo que 
cambié los valores a:

checkpoint_segments=5 y checkpoint_warning = 60s, con lo que me aparecen 
bastantes menos.

Me imagino que debo mejorar algo en la configuración para que no tarde tanto 

Este tema me preocupa ya que estoy haciendo pruebas, (la tabla p_c es la tabla 
de clientes) y va a tener en producción bastante más carga de trabajo que un 
simple update.

Haber si me pueden ayudar Gracias 

Responder a