Gracias por las prontas respuestas ahora acabo de probar psql -f archivo.sql y vas mas rapido pero tengo dos consultas adicionales.
Alvaro lei a un blogger de postgres hace tiempo que indicaba que tambien se podia consultar en la lista de arpug que alguien lo indique si ya no es asi por favor. Por otro lado no sabia lo de los indices supongo que me servira igual si despues de actualizar todo elimino y vuelvo a crear los indices. o seria mas recomendable antes de hacer modificaciones de grandes cantidades de registros eliminar primero los indices hacer las modificaciones y reindexar con respecto a lo que me mencionaba Danny Henderson de porque uso id like '99%' en la consulta pues resulta que en la BD postgres todos los lotes que no tienen codigo asignado empiezan por 99 asi que solo esos debo actualizar. aqui viene mi segunda consulta seria mas rapido hacer un where substr(ID,1,2) = '99' que usar el like '99%' El 25 de junio de 2012 10:54, Alvaro Herrera <[email protected]>escribió: > > Excerpts from Jose Mercedes Venegas Acevedo's message of lun jun 25 > 11:37:56 -0400 2012: > > Buen dia a todos > > > > tengo una base de datos postgis que tienen la lotizacion de un poblado > pues > > resulta que cada fila de los lotes tiene el nombre del cliente pero no su > > codigo para otras consultas administrativas que tenemos > > en otro sistema alfanumerico > > asi que exporte la lista de nombres y codigos del sistema transaccional > en > > oracle para insertarle ese codigo a postgres usando excel para armar la > > consulta. > > > > las consultas que genero en excel quedan asi: > > > > UPDATE CAT_LOTE SET ID= '13010400060' WHERE NOM_CLI = 'HOSTAL CABALLITO > > TOTORA' AND ID LIKE '99%'; > > UPDATE CAT_LOTE SET ID= '13010400070' WHERE NOM_CLI = 'ARCILA GONZALES > > MARGOT IVONE' AND ID LIKE '99%'; > > UPDATE CAT_LOTE SET ID= '13010400080' WHERE NOM_CLI = 'LESCANO ALVA > CARLOS > > FORTUNATO' AND ID LIKE '99%'; > > UPDATE CAT_LOTE SET ID= '13010400090' WHERE NOM_CLI = 'ARCILLA CACERES > > MICAELA' AND ID LIKE '99%'; > > UPDATE CAT_LOTE SET ID= '13010400100' WHERE NOM_CLI = 'ARCILLA JURADO > > ALBERTO' AND ID LIKE '99%'; > > > > y asi hasta 200 mil > > > > estas las pego en el pgadmin pero en bloques de 10000 porque si le pongo > > mas se cuelga y demora una hora mas o menos en ejecutar esa > actualizacion. > > > > estoy usando postgres 9.1 sobre windows server 2003 > > > > alguna otra forma de hacer esto mas rapido usando el psql por consola no > se > > alguna otra forma como seria? > > Yo sugerería borrar todos los índices de la tabla, luego hacer los > updates, luego hacer vacuum, luego re-crear los índices. > > Nota: la lista de fomento no es para consultas técnicas. No la pongas > en CC. La lista ARPUG tampoco me parece apropiada pero no desconozco. > > -- > Álvaro Herrera <[email protected]> > -- José Mercedes Venegas Acevedo cel: Mov. 949808846 mails: [email protected] [email protected] PHP Spanish Docs translator member. http://www.php.net/manual/es/index.php
