Re: Mensajes de error en psql

From: "Roberto Guevara" <cygnus2k(at)gmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar>, "Emanuel Calvo Franco" <postgres(dot)arg(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Mensajes de error en psql
Date: 2008-11-28 17:36:14
Message-ID: 57650fe50811280936p33cb214bpb4e772a63aed063f@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2008/11/28 Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

> Roberto Guevara escribió:
>
> > El tema completo es el siguiente, yo uso una libreria que internamente
> > agarra cualquier consulta y la desarma en consultas individuales (en
> 'grosso
> > modo' con un LIMIT 1) que recorren ciclicamente la PK para traer los
> > resultados fila por fila. El tema es que al correrlo con 1 mes de datos
> la
> > aplicacion se quedaba consultando por mucho tiempo. Al optimizar el
> manejo
> > de memoria y comprobar la velocidad de conexion que estaba ok, solo me
> > quedaba 2 opciones o la libreria era demasiado lenta para pedir los datos
> o
> > el motor tardaba en entregarmelos. Para probar la segunda, entonces
> ejecute
> > el query de prueba y me salio el error que les mostre. Por lo que dicen
> es
> > un error que solo sale cuando pido un resource set muy grande con esta
> > version de cliente asi que descarto el error que envie.
>
> Creo que no es dificil adivinar que la biblioteca es lenta, si hace lo
> del LIMIT 1 que dices. Es mala idea.
>
> Prueba esto:
>
> begin;
> declare foo cursor for select * from datest where fcfec>='2006-12-01'
> and fcfec<='2008-12-31'
>
> fetch 1000 from foo;
> fetch 1000 from foo;
> fetch 1000 from foo;
> ... (hasta que se acaben los resultados)
>
> commit;
>
> --
> Alvaro Herrera
> http://www.flickr.com/photos/alvherre/
> "I love the Postgres community. It's all about doing things _properly_.
> :-)"
> (David Garamond)
>

Lo del limit 1 es para emular una consulta fetch unitaria, que con lo que
trae setea un buffer de registro actual de otra libreria. Si no, yo lo haria
con cursores nativos del motor, pero para hacerlo tomara tiempo...

Hize la prueba que me dijiste pero para traer solo un millon de registros en
10 tandas de 100000 y lo trajo en 1 minuto mas o menos.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-11-28 17:42:06 Re: Mensajes de error en psql
Previous Message Alvaro Herrera 2008-11-28 17:19:39 Re: Mensajes de error en psql