Podrias compartir la parte del codigo afectada?
El día 17 de octubre de 2008 10:08, postgres Emanuel CALVO FRANCO <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> escribió: >> >> >> El 17 de octubre de 2008 4:32, Rafael Comino Mateos <[EMAIL PROTECTED]> >> 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 >> >> >> >> > -- TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo