Re: Funciones y esquemas

From: Jose Vasquez <cibercol(at)gmail(dot)com>
To: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: Carlos Bazán <infobaz(at)vtr(dot)net>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Funciones y esquemas
Date: 2009-05-30 15:08:08
Message-ID: 98a673a80905300808j3570cee0t6d0e30590a1604e6@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2009/5/30 Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>

> 2009/5/29 Jose Vasquez <cibercol(at)gmail(dot)com>:
> >>
> >> Si tengo una volumen muy grande de datos para un cliente en
> particular
> >> y tengo muchas consultas que solamente se refieren a ese cliente en
> >> particular
>
> crea indices incluso puedes crear indices parciales si lo consideras
> necesario

Precisamente esto es lo que hacemos normalmente, dividimos
los datos por meses y los datos de cada mes se insertan en la
particion correspondiente, dicha tabla y por efectos de organizacion
se encuentra en un esquema, por ejemplo si necesito los datos del
cliente 5 (p.e.
Carrefour) del periodo 7 (mes de julio) me debo dirigir al esquema o5p7
donde se encontrara la tabla que almacenara estos datos.

Es una combinacion de los esquemas de postgresql con el particionamiento que
tiene tambien postgresql. Una alternativa que se puede utilizar es tener
muchos nombres para una tabla por ejemplo facturaso5p7, seria el nombre
adecuado, pero hemos decidido utilizar un schema llamado o5p7 y dentro de
este esquema creamos la tabla facturas. Dicha tabla contendra la informacion
correspondiente al cliente 5 que sea del mes de julio. La razon de hacer
esto es que al activarse el constraint_exclusion, postgres busca los datos
exclusivamente en este esquema de la forma que lo estoy haciendo.

>
> >> ser'ia util dividir la tabla en diferentes esquemas que permitan
> >> consultar la informacion activando el parametro constraint_exclusion y
> las
> >> consultas realmente no tienen que ser muchas mas, puesto que postgres lo
> >> hace automaticamente.
>
> estas hablando de particionamiento de tablas (no entiendo que tiene
> que ver eso con separar en diferentes esquemas para diferentes
> clientes), de hecho el parametro constraint_exclusion no te ayudara si
> solo creas un esquema (CREATE SCHEMA) por cliente mas bien te ayuda
> cuando usas particionamiento (creas una serie de tablas hijas que
> heredan de una tabla padre)
>

creo que respondi en el anterior parrafo

>
> >> El problema es que postgres no inserta los datos en
> >> las diferentes tablas que se encuentran en diferentes esquemas, sino que
> hay
> >> que hacerlo manualmente.
>
> crea triggers...
> mira el ejemplo que se usa en esta pagina:
> http://www.postgresql.org/docs/8.3/static/ddl-partitioning.html
>

Estoy usandolos.

>
> >> Oracle lo hace directamente en las diferentes
> >> tablas o particiones de tablas.
> >
>
> postgres tambien, si creas los triggers... se esta trabajando en
> lograr algo en lo que tengas que escribir menos pero no lo esperes
> para mañana... quiza la versión 8.5 ya muestre algun avance en este
> tema
>
> --
> Atentamente,
> Jaime Casanova
> Soporte y capacitación de PostgreSQL
> Asesoría y desarrollo de sistemas
> Guayaquil - Ecuador
> Cel. +59387171157
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Carlos Bazán 2009-05-30 15:39:42 Re: Funciones y esquemas
Previous Message Jaime Casanova 2009-05-30 06:09:39 Re: Consulta 2: Error al leer desde una tabla plana