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