Re: Error insercion por llave foranea

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Carlos Andres Pizo <sgeneris(at)grex(dot)cyberspace(dot)org>
Cc: Ayuda sobre PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Error insercion por llave foranea
Date: 2006-09-08 21:22:04
Message-ID: 20060908212204.GK5892@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Carlos Andres Pizo escribió:
> On Tue, 5 Sep 2006, Alvaro Herrera wrote:
> Hola:
>
> No, la senial no se envia cada segundo, es configurable y por ahora lo
> hace cada 3 minutos, pero eso no significa que la insercion sea cada 3
> minutos, pues al ser tantos vehiculos, la insercion se haria cada segundo
> y a veces son muchos registros y otras muy pocos; a veces la senial gps se
> cae, y los dispositivos almacenan los datos para enviarlos en cuanto se
> conecten de nuevo, cada dispositivo cuenta con 4 MB de memoria para
> almacenar dichos datos, asi que al conectarse de nuevo, la cantidad de
> regitros se crece bastante y las inserciones empiezan a consumir la carga
> de la maquina, ademas se estan efectuando continuamente consultas, pues
> cada cliente tiene una o varias aplicaciones a traves de la cual ven sus
> vehiculos.

Entiendo.

He oido de gente que tiene un problema similar, es decir, una tasa de
insercion que no es constante, sino que tiene picos muy altos en
momentos aleatorios. Una manera en que se que se puede aliviar es
almancenar los datos en un archivo simple y tener un daemon que vaya
leyendo de ahi e insertando en la BD PostgreSQL. De este modo no
retrasas la llegada de nuevos datos desde los dispositivos, y permites
que la carga sobre el servidor Postgres se distribuya mas uniformemente.

> Saltandome un poco del tema, quisiera saber que tan verdad es esto: he
> escuchado varias veces que al realizar una consulta en una tabla con un
> campo tipo fecha, es mas rapido si se efectua con > y < que con un
> BETWEEN, es decir, por ejemplo si hago SELECT * FROM esquema.tabla WHERE
> fecha > '2006-08-08 00:00:00' AND fecha < '2006-09-08 23:59:59'; es mas
> rapida la consulta que si hago SELECT * FROM esquema.tabla WHERE fecha
> BETWEEN '2006-08-08 00:00:00' AND '2006-09-08 23:59:59';

No; es exactamente lo mismo.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alexander Quilca 2006-09-09 00:42:21 Autenticación con md5
Previous Message Alvaro Herrera 2006-09-08 21:17:07 Re: Compilación de Postgres con Visual Estudio C++