Re: Semi OT - Crear 1 tabla o 2?

From: Omar Beltrán Cano <omarbeltrancano(at)hotmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Semi OT - Crear 1 tabla o 2?
Date: 2014-01-31 14:06:03
Message-ID: BLU0-SMTP3046B219B58252B1ABD88ECBFAE0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos..

Bueno Conrado, "cada quien tiene su forma de matar las pulgas"
dicen por ahí....

Yo lo que haría sería manejar un particionamiento de tablas
( http://www.postgresql.org/docs/9.3/static/ddl-partitioning.html )
basado en el estado que comentas, para que así cada estado
tenga su propia tabla, y la base de datos lo haga de forma
automática.

Recuerda que es importante tener indexados los campos, y en
la medida de lo posible, que esos índices se encuentren en
discos aparte, ojalá discos scsi, y si pudieras hacer lo mismo
con las tablas, sería lo mejor.

Un abrazo a todos desde Colombia.

Omar

El 31/01/14 08:43, Conrado Blasetti escribió:
>
> Gente, buenos días. Quisiera consultar lo siguiente.
>
> Necesito almacenar y gestionar ciertos datos.
>
> Se trata de información que va a trabajarse según el estado de un
> campo y cada registro posee aproximadamente 10 atributos mas, de
> distinto tipo (date, varchar, numeric...)
>
> La tabla tiene su pk con un campo serial.
>
> Ej:
>
> Table: test
>
> Id serial
>
> Estado smallint(1) not null --CAMPO A TRATAR
>
> Campo1
>
> Campo2
>
> CampoN
>
> El campo "estado" es 1,2,3,4 o 0 (cero). Posiblemente en algún futuro
> se agreguen otros estados "5", "6", etc.
>
> Este campo nace en 1 y luego pasa al resto de estado. Cuando llega al
> estado 4, el próximo estado es 0 (cero) que sería la identificación
> del registro para interpretar la "historia" o que ya fue tratado y se
> lo explotará en conjunto con otros campos. Ej. "estado" = 0 and
> "cliente" = 'PEPE' (solo listados, no interactivo)
>
> Las búsquedas "interactivas" y de gestión simultanea (varias
> terminales) en esta tabla serán solamente por el campo "estado", 1,2,3
> o 4.
>
> La tabla va a crecer en 20 mil registros por mes aproximadamente.
>
> El registro nace en estado "1", a los 10 minutos (dependiendo la
> gestión) pasa a estado "2" (update)
>
> El registro en estado "2" a los 10 minutos (dependiendo la gestión)
> pasa a estado "3" (update)
>
> El registro en estado "3" a los 10 minutos (dependiendo la gestión)
> pasa a estado "4" (update)
>
> El registro en estado "4" a los 10 minutos (dependiendo la gestión)
> pasa a estado "0" (update)
>
> Si no se generan registros en 1h, posiblemente todos los registros de
> la tabla tendrán el estado "0" hasta que se genere un nuevo registro.
>
> Cada 30 segundos debo ejecutar 4 consultas. Una consulta para cada
> estado (1,2,3, y 4)
>
> Cabe aclarar que el resto de atributos de esta tabla, también se
> actualizaran en cada paso de estado....
>
> La consulta final es, como me convendría gestionar los datos?
>
> 1-Creo la tabla directamente con todos los datos y ejecuto las
> consultas de forma tradicional? Select * from table where estado = 1?
>
> 2-Creo una tabla con id y estado donde se hagan los insert y update
> esenciales y luego una segunda tabla donde tenga el resto de atributos
> para joinearla con el id de la tabla "cabecera"?
>
> 3-Me conviene hacer "delete" de los campos es estado 0 (o sea, luego
> del estado 4) e insertarlos en una tabla consolidada?
>
> 4-Aclaro que el mantenimiento de la bd no será diario por la gestión
> (24x7), autovaccum activado
>
> Bueno, cualquier sugerencia, a disposición.
> Saludos,
>
> Conrado
>
> PD:
>
> PostgreSQL: 9.3
>
> Version string: PostgreSQL 9.3.1, compiled by Visual C++ build 1600,
> 32-bit
>
> SO: Windows.
>
> Desarrollar : C# .NET (Npgsql y Mono)
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Pedro PG 2014-01-31 15:18:22 Personalizar SQLERRM
Previous Message Conrado Blasetti 2014-01-31 13:43:07 Semi OT - Crear 1 tabla o 2?