Re: Consulta sobre Lentitud de procesos en una tabla

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Orlando Godoy Garnica <orlandogodoy(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta sobre Lentitud de procesos en una tabla
Date: 2006-01-19 18:26:43
Message-ID: c2d9e70e0601191026k3665cap5bbca60429987207@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 1/19/06, Orlando Godoy Garnica <orlandogodoy(at)gmail(dot)com> wrote:
> Tengo una Tabla cuya estructura es la que esta al final, esta tabla tiene
> 130 registros los cuales se actualizan cada 5 minutos desde una aplicacion
> hecha en JAVA, cuando la base de datos se creo y la tabla estaba vacia, los
> 4 primeros dias las consultas, updates, insert, se ejecutaban rapidamente
> sin embargo a los 5 dias el tiempo de todos los procesos sobre esa sola
> tabla era demasiado lento. Se elimino la tabla y volvio a crear y trabajo
> bien por 5 dias, quisiera saber si alguien ha tenido algun problema de ese
> tipo, he probado con parar la aplicacion JAVA y hacer consultas sobre el
> POSTGRES y todo trabaja bien con excepcion de esta tabla.
>

eso es porque nunca has ejecutado ANALYZE o VACUUM sobre esta tabla...
o al menos no lo has hecho con suficiente frecuencia...
esto te afecta porque aunque la tabla no es muy grande en numero de
filas si lo es en columnas.

yo que tu revisaria el diseño:
1) la tabla tiene demasiadas columnas, por ejemplo trataria de ver
otra forma de guardar latitud y longitud y quiza usaria otra tabla
para guardar informacion sobre los puertos...
2) la simple idea de que se actualize la tabla cada 5 minutos me suena
espantosa... seguro que no tienes otra forma de lograr lo que estas
haciendo?

> CREATE TABLE tm_lastmsg
> (
> msgrefnumber int8 NOT NULL,
> codigonave int4 NOT NULL,
> id_equipo int4 NOT NULL,
> zonacode varchar(6) NOT NULL,
> codigoflota int4 NOT NULL,
> codigoarmador int4 NOT NULL,
> les int4,
> dnid int4,
> member int4,
> receiveddate timestamp,
> onboarddate timestamp,
> storetime timestamp,
> hemisns int4,
> latgrad int4,
> latmin int4,
> latsec float8,
> hemiswe int4,
> longgrad int4,
> longmin int4,
> longsec float8,
> memcode int4,
> speed int4,
> course int4,
> portstate varchar(60),
> usermessage varchar(255),
> port0status int4,
> port1status int4,
> port2status int4,
> port3status int4,
> port4status int4,
> ddlat float8,
> ddlong float8,
> fivemil varchar(6),
> outtimeflag int4,
> deltatime float8,
> isnew int4,
> CONSTRAINT tm_lastmsg_pkey PRIMARY KEY (msgrefnumber, codigonave,
> id_equipo, zonacode, codigoflota, codigoarmador),
> CONSTRAINT "$1" FOREIGN KEY (codigonave, codigoflota, codigoarmador)
> REFERENCES tm_naves (codigonave, codigoflota, codigoarmador) ON UPDATE
> RESTRICT ON DELETE RESTRICT,
> CONSTRAINT "$2" FOREIGN KEY (zonacode) REFERENCES tm_zonadesc (zonacode)
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT "$3" FOREIGN KEY (id_equipo) REFERENCES tm_equipo (id_equipo)
> ON UPDATE RESTRICT ON DELETE RESTRICT,
> CONSTRAINT tm_lastmsg_msgrefnumber_key UNIQUE (msgrefnumber)
> )
> WITH OIDS;
> ALTER TABLE tm_lastmsg OWNER TO postgres;
>
>

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Marco Castillo 2006-01-19 18:52:52 Utilizando driver de JDBC
Previous Message Jaime Casanova 2006-01-19 18:15:54 Re: Cursor en Procedimiento plpgsql