Duración update

From: FRANCISCO JOSE PALAO VILLANUEVA <fjpv_2000(at)yahoo(dot)es>
To: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Duración update
Date: 2014-04-14 12:21:45
Message-ID: 1397478105.19249.YahooMailNeo@web172603.mail.ir2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2014-04-14 14:24:22 Re: Duración update
Previous Message Alberto Cabello Sánchez 2014-04-14 09:40:53 Re: Ayuda documentación científicos para justificar el uso de Postgresql + PostGIS