RE: Ayuda con inquietud

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, <jaquino(at)lexuseditores(dot)com>
Cc: <jolthgs(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Ayuda con inquietud
Date: 2012-07-12 14:30:39
Message-ID: BAY155-W2461ED70C2F058AFEAAB16E3D00@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Tengo algo funcionando asi no con 1000GPS pero si con 120 y subiendo y lo que hice fue simplemente meter datos en esa tabla y hacer un particionamiento mensual. Mis GPS envian datos cada 30s y hasta ahora funciona muy bien.

> CC: jolthgs(at)gmail(dot)com; pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [pgsql-es-ayuda] Ayuda con inquietud
> From: alvherre(at)alvh(dot)no-ip(dot)org
> To: jaquino(at)lexuseditores(dot)com
> Date: Mon, 9 Jul 2012 23:06:01 -0400
>
>
> Excerpts from Javier Aquino's message of lun jul 09 21:48:50 -0400 2012:
> > OK,
> >
> > No había caído en cuenta de ello.
> >
> > Entonces te quedaría 2 opciones:
> >
> > 1. Crear un campo position_id en tu tabla "maestra" gps, este campo se
> > actualizaría cada vez que realices un insert nuevo a tu tabla positions.
> >
> > Pros:
> > - Actualización muy rápida ya que solo actualizas un campo int.
>
> Esto no es tal. Al hacer un UPDATE en Postgres, tiene que crearse una
> versión completa nueva del registro, que es idéntica al anterior y sólo
> difiere en el campo int que cambiaste. Así que no es para nada tan
> rápido como sugieres.
>
> > 2. crear una tabla nueva exactamente igual a positions llamado
> > last_positions, pero con dos cambios ( id integer y no serial, gps_id
> > primary key) y este se actualizaría cada vez que ingrese un dato nuevo a
> > tu tabla positions.
>
> Esta idea es mucho mejor.
>
> > BEGIN
> > update last_positions
> > set (id, gps_id, position, velocidad, altura, fecha, grados,
> > satelites) = ( new.id, gps_id, new.position, new.velocidad,
> > new.altura, new.fecha, new.grados, new.satelites)
> > where gps_id = new.gps_id;
> > if not found then
> > insert into last_positions
> > values ( new.* );
> > end if;
>
> Buena suerte consiguiendo que esto funcione bien cuando haya dos
> procesos insertando registros nuevos para un mismo gps_id.
> Creo que es más sano tomar un SELECT FOR UPDATE.
>
> --
> Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripci�n:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2012-07-12 14:44:23 Re: funcion select pg_table_size da 0 (cero)
Previous Message Edwin Quijada 2012-07-12 14:26:35 RE: Ayuda con inquietud