Re: [pgsql-es-ayuda] Create tabla unlogged que elimine automáticamente los registros una vez terminada la función

From: Hellmuth Vargas <hivs77(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: mauricio pullabuestan <jmauriciopb(at)yahoo(dot)es>, Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Create tabla unlogged que elimine automáticamente los registros una vez terminada la función
Date: 2016-06-03 12:46:37
Message-ID: CAN3Qy4pm39Lk+21TVD81yeaFt4u-NmUzQmtCfv=nnQjhBMPaQA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Mauricio

Creo que tiene una confusión entre tablas unlogged y tablas temporales,
para lo que desea hacer las tablas temporales seria lo que esta
buscando...en le siguiente link encuentra un ejemplo:

http://www.sqlines.com/postgresql/statements/create_temporary_table

El 2 de junio de 2016, 17:08, Alvaro Herrera<alvherre(at)2ndquadrant(dot)com>
escribió:

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

--
Cordialmente,

Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message mauricio pullabuestan 2016-06-04 14:07:02 Re: Create tabla unlogged que elimine automáticamente los registros una vez terminada la función
Previous Message Alvaro Herrera 2016-06-02 22:08:32 Re: Create tabla unlogged que elimine automáticamente los registros una vez terminada la función