Re: Como volcar un query sobre un array

From: Kernel <jucabapa(at)gmail(dot)com>
To: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Como volcar un query sobre un array
Date: 2015-07-09 16:16:33
Message-ID: 559E9E61.5090506@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 09/07/2015 a las 15:11, Alvaro Herrera escribió:
> Kernel escribió:
>
>> Mis dudas :
>>
>> - ¿la segunda vez que intente hacer un loop, esta en cache y no cuesta ?
>
> No.
>
>> - ¿Mejor lo vuelco a un record.array y recorro el array las veces que
>> necesite? ¿como lo vuelco?
>
> Podrías crear una tabla temporal con los resultados, CREATE TEMP TABLE
> fff AS SELECT ..
>
>> - Declaro un cursor y solo lo habro una vez (con el OPEN) y luego lo recorro
>> con fecth las veces que necesite?
>
> Es fastidioso hacer esto en plpgsql.
>
>> - y la ultima que se me ocurre y mas limpia, si utilizo sentecias select
>> sobre esta que actuaria como una subconsulta que si esta en cache iria
>> rapido (esto ultimo es algo que creo yo)
>
> No entendí. Si quieres usar los resultados de una consulta varias veces
> "dentro" de otra consulta, puedes definirla como un CTE usando la
> cláusula WITH, como
> WITH fff AS (SELECT ..)
> SELECT a. ... FROM fff
>
>

Muchas gracias por vuestro tiempo.

El query, como dije antes normalmete va ha devolver entre 0 y 3 filas,
lo que ocurre que tengo que recorrer el resultado varias veces para
pasarlos por unos IF y analizar la situacion, estoy buscando cual sera
la forma mas rapida y no tener que volver a leerlos de nuevo de la tabla.

La opcion que propones de la tabla temporal creo que es la mejor, la mas
limpia, puedo realizar ese analisis a base de querys a la tabla temporal.

Entiendo que la diferencia de tiempo de crear la tabla temporal
(supongo que se creara en memoria) y dejarlo en un array en memoria sera
mínimo ¿no?

No se si estoy intentando ir muy fino, pero es una tabla de movimientos
de almacen a la que se va acceder costantemente y me gustaria que fuera
los mas rapido posible. (seguro que luego derrochare mucho mas tiempo en
cualquier chorrada sin darme cuenta, pero bueno)

Gracias

-
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 Alvaro Herrera 2015-07-09 16:37:59 Re: Como volcar un query sobre un array
Previous Message MARIA ANTONIETA RAMIREZ SOLIS 2015-07-09 15:21:20 Rutinas de mantenimineto