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
>
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 |