Re: Error insercion por llave foranea

From: Carlos Andres Pizo <sgeneris(at)grex(dot)cyberspace(dot)org>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Ayuda sobre PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Error insercion por llave foranea
Date: 2006-09-05 15:24:47
Message-ID: Pine.BSO.4.63.0609051103140.971@grex.cyberspace.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

mira, voy a pasar exactamente lo que estoy haciendo:

Primero, en la empresa trabajamos con x cantidad de clientes, como la
cantidad de registros es mucha, creamos un esquema para cada cliente, en
un principio no usabamos ni particiones ni tablespaces ni nada,
simplemente en cada esquema teniamos unas 5 tablas que de acuerdo al
cliente se iban llenando, el problema surge porque aunque solo tenemos
registros de los dos ultimos meses, la carga de las consultas elevan el
consumo en el servidor, nos a tocado varias veces bajar la bd y esperar a
que la carga disminuya y luego volver a subirla; usamos como servidor un
pc con Fedora Core 4, php, apache, postgres; debido a la falta de
presupuesto por el momento no podemos tener un mejor servidor, incluso ni
siquiera un mejor disco duro, que por el momento es un ide de 80 GB.

La cantidad de registros ha crecido de forma alarmante, en el momento un
backup de la base de datos nos ocupa alrededor de 12 GB, asi que decidimos
implementar particiones; tenemos una unica tabla(llamemosla tabla1) en
cada esquema que es la que mas registros tiene, y las demas
tablas(llamemoslas tabla2, tabla3 y tabla4) mas pequenias tienen llaves
foraneas a esa tabla, asi que lo que hicimos fue dejar tabla1 en
cada esquema y creamos unas tablas hijas(llamemoslas tabla1_1, tabla1_2,
tabla1_3 y tabla1_4) en las que se guarda registros de 1 semana, las
reglas se crearon en tabla1; las tablas tabla2, tabla3 y tabla4 que estan
relacionadas a tabla1 por medio de una llave foranea, no les hicimos
particion, pues los registros que ahi se almacenan son pocos. Al principio
las tablas tabla1_1,..., tabla1_4 generada heredaban de tabla1, y al
tratar de hacer una insercion en tabla2, tabla3 y tabla4 generaba el error
que antes envie por este medio, me dijeron que quitara la herencia, asi
que lo hice, pero sigue presentando el mismo error, estuve leyendo el
manual de postgres sobre particionamiento y segui paso a paso cada uno de
los puntos que ahi documentan sobre la creacion de las particiones y sobre
creacion de reglas, pero no hablan nada(o no encontre) sobre como las
tablas que tienen llaves foraneas a esa tabla padre realizan las
inserciones, pues a mi no me ha funcionado.

Espero haber explicado bien mi problema, gracias por la ayuda.

PD: No se si deba habilitar alguna opcion en el archivo postgresql.conf,
aunque ya habilite constraint_exclusion = on, pues en alguna parte lei que
depronto ese era el problema.

On Fri, 1 Sep 2006, Alvaro Herrera wrote:

> Carlos Andres Pizo escribi:
>> Hola gente:
>>
>> Tengo un problema en la insercion de un registro en una tabla con llave
>> foranea.
>
> Tu ejemplo funciona aca. Si inventas un ejemplo sintetico, pruebalo
> antes de publicar.
>
> Creo que tu problema es otro. Tienes tablas heredadas por casualidad?
>
> --
> Alvaro Herrera http://www.CommandPrompt.com/
> The PostgreSQL Company - Command Prompt, Inc.
>

Carlos Andres Pizo
ParqueSoft
Linux Registred User #323242

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message pablo cifuentes 2006-09-05 15:49:53 conexion en postgres y C#
Previous Message Pablo Braulio 2006-09-05 14:38:35 Re: Mostrar un nº determinado de carácteres de un texto en un SELECT.