El tema de la tabla temporal que comentan es mucho mejor pero es mas esfuerzo, si antes era rapido y ahora lento, suena a que la tabla no tiene indice por el campo que haces el where, podes probar haciendo un explain y si es el caso crear el indice, creo que ahi recuperarias +o- a como era antes y te da tiempo para hacer lo de la tabla temporal con menos apuro. Mi humilde opinión.
Suerte! El 2 de julio de 2014, 15:54, Ivan Perales M. <ivan.pera...@gmail.com> escribió: > Gracias por tu rapida respuesta. > > Alomejor me falto información. Estoy usando postgres 9.0 > La tabla en cuestion si tiene un index de varias columnas, pero tambien > tiene un index de una sola columna, que es el número de crédito, y no hago > ningun join a otra tabla, solo buscar el registro para actualizar su status > y/o importe. > > El queri individual es algo asi: > > select campos from credito where numero = $param; > > Es simple, pero como lo ejecuto varios miles de veces se vuelve lento, La > otra opcion que utilizo actualmente es > > Select campos from credito where numero in ($Lista) > > Donde lista es un parametro con los casi 15 mil numeros de credito, y como > dije esta me resulta mas rapida que realizarlos uno por uno. > > Saludos y gracias por su tiempo. > > > 2014-07-02 14:31 GMT-05:00 Jaime Giraldo <spos...@gmail.com>: > >> A modo personal te recomiendo 3 aspectos: >> >> >> 1. Verifica los indices basado en los explain ( >> http://www.postgresql.org/docs/9.2/static/using-explain.html) para >> verificar que tienes los índices necesarios. Recuerda que en ocasiones >> pueden ocupar más espacio que la misma información, pero son un punto >> clave >> a la hora del performance. >> 2. Realiza un Mantenimiento a la base de datos con vacuum Full y >> reindex. >> 3. Genera los mismos queries con LEFT/RIGHT JOIN ya que estos son >> agregados en el proceso y no luego de realizar las consultas internas en >> IN. >> >> Espero que estos 3 puntos te puedan ayudar. >> >> JG. >> >> >> El 2 de julio de 2014, 13:49, Ivan Perales M. <ivan.pera...@gmail.com> >> escribió: >> >> La situación es la siguiente: >>> >>> Tengo una tabla que no crece mucho, aprox 15 mil registros por mes. Esta >>> tabla contiene los creditos que se le otorgan a las personas, por lo tanto >>> tiene un status de si esta nuevo, abonado, pagado, embargado, etc. >>> >>> El control de los pagos los hacen en otro sistema, el cual mes a mes >>> envian un listado en excel con todos los creditos activos, sean nuevos o >>> atrasados, los que no aparecen significa que estan terminados, sin embargo >>> pueden reaparecer creditos terminados lo que significa que se reabrean. >>> >>> Este listado como les digo trae alrededor de 15 mil registros. Entonces >>> lo que yo hago es buscar solo los creditos pendienes y los cacheo. Entonces >>> luego por cada credito en el listado busco si ya existe para reabrilo o >>> actualizar el saldo, si no existe para crearlo y al terminar el proceso >>> todos los que estaban pendientes que ya no aparecieron en el listado los >>> termino. >>> >>> El problema es que despues de 4 años, la tabla tiene casi 800 mil >>> registros y buscar uno a uno se hizo lentisimo. Lo que hize fue un query >>> con un in de los casi 15 mil valores, alomejor esto esta equivocado pero >>> hasta ahora ha sido lo mejor que me ha resultado y el tiempo mejoro >>> muchisimo en comparacion de realizar query por query, de casi 10 mins se >>> bajo a 5 mins. Cabe mencionar que el equipo que funciona como server no es >>> de lo mejor, por eso tambien afecta la velocidad. >>> >>> Mi pregunta es, si ustedes han tenido alguna situacion similar que >>> pudieran darme algun consejo, alguna tabla cache o algun otro metodo para >>> poder agilizar este proceso. >>> >>> Saludos y buen dia >>> >>> -- >>> Lindolfo Iván Perales Mancinas >>> Solo existen 10 tipos de personas en el mundo, las que saben binario y >>> las que no. >>> >> >> >> >> -- >> Jaime Alberto Giraldo J. >> " La madurez del hombre es haber vuelto a encontrar la seriedad con la >> que jugaba cuando era niño" >> Friedrich Wilhelm Nietzsche >> > > > > -- > Lindolfo Iván Perales Mancinas > Solo existen 10 tipos de personas en el mundo, las que saben binario y las > que no. > -- Brian Colman Miers br...@bricosolutions.com