Re: Create tabla unlogged que elimine automáticamente los registros una vez terminada la función

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: mauricio pullabuestan <jmauriciopb(at)yahoo(dot)es>
Cc: Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Create tabla unlogged que elimine automáticamente los registros una vez terminada la función
Date: 2016-06-02 22:08:32
Message-ID: 20160602220832.GA263170@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

mauricio pullabuestan escribió:
> Buen día.
>
> Tengo una función que utiliza una tabla temporal con un indice don ingreso y actualizo datos, luego hago un update a otras tablas en base a a la data de la tabla temporal.
>
> Según leí el rendimiento es mejor en una tabla física que una temporal, entonces quiero cambiar la tabla temporal con una tabla Unlogged y que al final de la función los registros de dicha tabla se eliminen automáticamente.
>
> Esta función es llamada por varios usuarios, como cada uno tiene su propia transacción, los datos serán independientes, por lo cual no habría problema con la concurrencia.
>
> Mi definición de la tabla seria algo como esto.
>
> Create unlogged table miesquema.item_costo
> (
> item integer,
> tiene_componenten boolean,
> costo numeric(12, 8),
> ...
> ) ON COMMIT DELETE ROWS;
>
> Pero me lanza un error "On Commit solo puede ser usado con tablas
> temporales", existe algún mecanismo para vaciar la tabla al salir de
> la función?

No, pero podrías usar TRUNCATE.

¿Dónde leíste que una tabla unlogged era mejor que una tabla temporal?
Hasta donde yo sé, la única diferencia es en qué punto una o la otra se
van a disco; y para una tabla temporal puedes controlarlo con el
parámetro temp_buffers. Quizás podrías probar si mejora poniendo
temp_buffers en un tamaño donde quepa la tabla completa, para evitar que
se escriba a disco.

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Hellmuth Vargas 2016-06-03 12:46:37 Re: [pgsql-es-ayuda] Create tabla unlogged que elimine automáticamente los registros una vez terminada la función
Previous Message mauricio pullabuestan 2016-06-02 22:04:20 Create tabla unlogged que elimine automáticamente los registros una vez terminada la función