Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group