RE: Cursores Vs Performance

From: Armando Venegas Pérez <venegasp_armando(at)hotmail(dot)com>
To: <lgarciam(at)vnz(dot)uci(dot)cu>, <ruben2218(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Cursores Vs Performance
Date: 2011-11-17 16:47:06
Message-ID: BAY164-W8D30A9D774C9067CF443EF7C70@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

En mi trabajo se tenia que exportar algunos campos a CSV, al tratar de hacer la consulta (más de 60 millones de registros) se tardaba casi 30 minutos (No es mucho, pero cuando se ejecuta desde un sistema WEB, ya es otra cosa).
Se solucionó al abrir un cursor que leía segmentos de 10,000 registros y se exportaban al CSV, hasta terminar.
Se redujo a solo 2-3 minutos.

En nuestro caso se optimizo el proceso.

Saludos.

From: lgarciam(at)vnz(dot)uci(dot)cu
To: ruben2218(at)gmail(dot)com; pgsql-es-ayuda(at)postgresql(dot)org
Date: Thu, 17 Nov 2011 12:08:39 -0430
Subject: RE: [pgsql-es-ayuda] Cursores Vs Performance

No lo creo, mira lo que dice en la documentación oficial
relacionada a los cursores:

“Rather than executing a whole query at
once, it is possible to set up a cursor that encapsulates the query, and then
read the query result a few rows at a time. One reason for doing this is to
avoid memory overrun when the result contains a large number of rows. (However,
PL/pgSQL users do not normally need to worry about that, since FOR loops
automatically use a cursor internally to avoid memory problems.) A more
interesting usage is to return a reference to a cursor that a function has
created, allowing the caller to read the rows. This provides an efficient way
to return large row sets from functions.”

Saludos.

De:
pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de ruben avila
galindo

Enviado el: jueves, 17 de noviembre de 2011 11:42

Para: pgsql-es-ayuda(at)postgresql(dot)org

Asunto: [pgsql-es-ayuda] Cursores Vs Performance

Hola estuve leyendo que usar cursores demanda mucho uso de
procesador y memoria cuando ejecutes Lotes de Informacion y si es mas
operaciones en memoria

queria saber si es cierto eso y en caso nomas se conviene
usar CURSOR en Postgresql.

Saludos

Ruben Avila G

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message ruben avila galindo 2011-11-17 16:51:45 Re: Cursores Vs Performance
Previous Message ruben avila galindo 2011-11-17 16:42:35 Fwd: ERROR Interval