From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | "Andres A(dot) Mamani" <andres(dot)abel(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Problemas de rendimiento con tablas temportales |
Date: | 2007-05-11 17:19:45 |
Message-ID: | 20070511171945.GF17314@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Andres A. Mamani escribió:
> Tengo una función pl/pgSql en la cual trabajo con tablas temporales de la
> forma:
>
> create temp table _nombre_tabla (campo1 integer, campo2 text... campoN
> integer);
> ...
> inserto datos a la tabla:
> insert into _nombre_tabla select * from (otras subconsultas);
>
> posteriormente elimino la tabla.
>
> El problema es que cuanto más llamadas se hace a la función el proceso es
> mas lento, y aunmenta el espacio en disco de la base de datos que
> originalmente es de 500MB y aumenta progresivamente... ahora esta en 5GB; el
> retardo aumenta del orden de los milisegundos a 2, incluso hasta 3 minutos.
> Tengo que bajar mi servidor y realizar un VACUUM --all --full --analyze
> entonces todo vuelve a la normalidad y el proceso es rápido, sin embargo no
> reduce considerablemente el espacio en disco utilizado por la base de datos.
Debes realizar vacuum con mucha mas frecuencia, digamos una vez al dia
como minimo. Y no pongas el FULL; usa el vacuum normalito no mas.
Asegurate que se hace como superusuario y examina el resultado para que
no hayan mensajes de error o que se salta algunas tablas.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Arturo Munive | 2007-05-11 20:26:06 | Re: 3 consultas sobre Funciones |
Previous Message | Alejandro Gasca | 2007-05-11 17:17:36 | secuencias en catalogos anidados |