Re: Consulta Eficiente

From: "postgres Emanuel CALVO FRANCO" <postgres(dot)arg(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta Eficiente
Date: 2008-10-17 13:10:39
Message-ID: f205bb120810170610x719b5ccama497c39451af4a22@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Podrias compartir la parte del codigo afectada?

El día 17 de octubre de 2008 10:08, postgres Emanuel CALVO FRANCO
<postgres(dot)arg(at)gmail(dot)com> escribió:
> Lo que podes hacer es ejecutar la consulta por partes (con limits) y
> ahacer cursores para cada consulta.
> Es mas laborioso pero ocuparias menos memoria.
>
>
>
> El día 17 de octubre de 2008 9:27, Silvio Quadri <silvioq(at)gmail(dot)com> escribió:
>>
>>
>> El 17 de octubre de 2008 4:32, Rafael Comino Mateos <ccomino(at)kaplan(dot)es>
>> escribió:
>>>
>>> Tengo una función que al ejecutarse debe trabajar con un conjunto de
>>> 1.000.000 de registros aproximadamente.
>>>
>>> Sobre ese conjunto de datos, en un cursor saco una a una las filas y la
>>> mayoría las borro y otras pues las guardo en una tabla, o hago cálculos,
>>> etc.
>>>
>>> El problema que tengo es de eficiencia, ya que la transacción se hace tan
>>> grande que ocupa demasiada memoria y se hace lentísimo la ejecución.
>>>
>>> Que puedo hacer?
>>
>> ¿Es necesario que ejecutes todo en una transacción?
>> ¿Es necesario también tener un cursor?
>> Yo he ejecutado cosas similares con plpgsql y no tuve inconvenientes ...
>>
>> Después de ejecutar muchos "delete"s sobre la tabla ¿Hacés el vacuum?
>> Quizás ejecuciones anteriores que no efectuaron el vacuum correspondiente
>> estén afectando la performance.
>>
>> Saludos!
>> Silvio
>>
>>
>>
>>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Reynier Perez Mira 2008-10-17 13:12:25 RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Actualización de PostgreSQL me acabó con la BD
Previous Message postgres Emanuel CALVO FRANCO 2008-10-17 13:08:05 Re: Consulta Eficiente