Re: Pg_dump , Vacuum full a una bd

From: Victor Chavez <vchavezp(at)yahoo(dot)com>
To: guillermo(dot)munoz(at)grupotekne(dot)com(dot)ar, alvherre(at)alvh(dot)no-ip(dot)org
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Pg_dump , Vacuum full a una bd
Date: 2007-11-22 18:06:01
Message-ID: 269294.82717.qm@web30112.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola. Gracias por responder.

Uso postgres version 8.2.3 en un suse linux 10.1

Los clientes ejecutan una aplicacion desarrollada en delphi ejecutandose bajo windows xp con un driver dbexpress que se conecta directamente a la base de datos sin necesidad de usar odbc.

Quiero enfatizar este punto: Cuando la base de datos esta recien recuperada del pg_dump, todo corre de maravilla, los inserts se hacen de manera practicamente instantanea, no hay tiempo de espera. Pero va pasando el tiempo y algo ocurre en la base de datos que se torna lento el proceso.En las maquinas cliente no hago absolutamente nada, ejecuto el pg_dump, elimino la bd y la restauro y de nuevo queda todo bien.

Lei en la documentacion que el vacuum full optimiza el rendimiento, pero no tengo la certeza de que esto tenga que ver.

Las tablas no tienen claves foraneas y unicamente tienen un indice tipo unique para verificar que no se dupliquen los registros.

Esta es la tabla master:

CREATE TABLE pedidoscth
(
alm character(2),
folio integer,
forigen integer,
fecha date,
hora time without time zone,
cliente character(7),
agente character(3),
relacion integer,
ordencompra character(15),
referencia character(60),
cotizacion boolean,
importe numeric(12,4),
descuento numeric(12,4),
impuesto numeric(12,4),
autorizado numeric(12,4),
estatus character(1),
usuario character(3),
surte character(3),
empaca character(3),
elabora character(3)
)
CREATE UNIQUE INDEX pedidoscthx
ON pedidoscth
USING btree
(alm, folio);

Y esta es la tabla detalle:

CREATE TABLE pedidosctd
(
alm character(2),
folio integer,
mov integer,
id character(6),
cantidad numeric(10,4),
tipoprecio numeric(9,2),
precio numeric(12,4),
descuento numeric(9,4),
impuesto numeric(9,2)
)

CREATE UNIQUE INDEX pedidosctdx
ON pedidosctd
USING btree
(alm, folio, mov);

Agradezco de antemano sus comentarios

Victor Chavez

----- Mensaje original ----
De: Guillermo Muñoz <guillermo(dot)munoz(at)grupotekne(dot)com(dot)ar>
Para: Victor Chavez <vchavezp(at)yahoo(dot)com>
CC: pgsql-es-ayuda(at)postgresql(dot)org
Enviado: jueves, 22 de noviembre, 2007 8:28:12
Asunto: Re: [pgsql-es-ayuda] Pg_dump , Vacuum full a una bd

Victor
antes que nada:
1) que version de postgres?
2) Sistema operativo?
3) y version de ODBC? (ya que estimo, estaras usando alguna aplicacion
corriendo en windows (por los excel))

> En una base de datos se le insertan registros de pedidos de clientes
> y funciona. La cuestion es que despues de varios dias
> el tiempo que lleva el insert aumenta hasta hacer que ya no sea
> practico para el usuario esa espera. Una ocasion insertar un pedido
> llevo mas de 30 minutos. A grosso modo dire que se captura una hoja
> de datos tipo excel y luego se aplica a la base de datos. No hay
> operaciones extraordinarias mas que el simple insert.

Cuantos registros por operacion? estas insertando mas de uno si tomas desde un
excel

> La documentacion dice que con vacuum full deberia optimizar el
> rendimiento. Lo he hecho manualmente pero no mejora notablemente.

Cuando estas haciendo el Vacuum te arroja un "HINT:"?.
te pregunto esto porque el problema puede estar en alguna configuracion del
servidor (max_fsm_pages, etc).
Revisaste el log en busca de algo no normal? seria bueno setearlo por
un dia en
modo debug cosa de tener mas detalle.
Ademas la tabla de destino, tiene indices? esto tambien te hacer mas
lentos los
insert.

> El unico modo en el que he logrado mejorar realmente el rendimiento
> es el siguiente:
>
> 1) crear un archivo txt desde un pg_dump de la base de datos
> 2) eliminar la base de datos, crearla de nuevo
> 3) restaurar del archivo txt la informacion de la base de datos

bajas de 30 minutos a cuanto?

Saludos
GM

Comparte video en la ventana de tus mensajes (y también tus fotos de Flickr).
Usa el nuevo Yahoo! Messenger versión Beta.
http://mx.beta.messenger.yahoo.com/

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-11-22 18:08:06 Re: Indices
Previous Message Alvaro Herrera 2007-11-22 18:03:51 Re: Tablas que corresponden a un rol...