gracias por la sugerencia Alvaro. tomando en cuenta lo que decia Francisco revise el tamaño de todas las tablas involucradas y le di a temp_buffers la suma del tamaño de tabla 1, tabla 2 y tabla 3 con el resultado del tamaño del join. y de nuevo todo se ejecuta como antes.
son las primeras pruebas pero incluso diria que hasta esta andando mas rapido. tengo 2 bases de datos con algunos miles de registro en un primer caso necesite temp_buffers a 15 megas y en el otro temp_buffer llego a 76 mb. que es el tamaño que suman t1,t2 y t3 en cada caso Gracias ahora nuevamente todo esta andando bien aunque un me pregunto como actuaria si la BD fuera mas grande y no me alcanzara la memoria. saludos El 10 de julio de 2016, 13:35, Alvaro Herrera <alvhe...@2ndquadrant.com> escribió: > jvenegasperu . escribió: > > > Trabajo con una función para ordenamiento de geometrias > > > > dentro de mi función tengo codigo de esta forma > > > > create temp table tabla1 as > > bla bla bla > > > > create temp table tabla2 as > > bla bla bla > > > > create temp table tabla3 as > > select * from tabla1 t1 join tabla2 t2 on t1.id = t2.id > > > > La función venia trabajando de maravilla tardando solo un par de segundos > > por cada ruta de trabajo que tenia que ordenar. > > Pero ahora a pasado a demorar mas de 40 segundos por cada registro de la > BD > > que tengo que analizar. > > Francisco ya comentó sobre temp_buffers. > > Es posible que te convenga hacer > ANALYZE tabla1; > ANALYZE tabla2; > antes de crear la tabla 3. Así las estadísticas estarán al día y > posiblemente genere un plan mejor para el join de crear la tabla 3. > > -- > Álvaro Herrera http://www.2ndQuadrant.com/ > PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services > -- José Mercedes Venegas Acevedo cel Mov RPC 964185205 skype jvenegasperu facebook jvenegasperu <jvenegasp...@gmail.com>