Excerpts from Andrés P.P.'s message of jue sep 02 21:45:30 -0400 2010: > Estimados listeros > > Necesito confirmación a lo siguiente: hice dos updates sobre tablas cuya > definición y carga fueron iguales: > *En Desarrollo :* > > upd1) update tabla1 set valor = lpad(substr(valor,4,9),11,76) where > length(valor)=12; 21867.891 ms > upd2) update tabla2 set valor = 76||substr(valor,4,9) where > length(valor)=12; *21119.145 ms* > > (valor es la PK de la tabla,varchar y no hay más índices) > > Ambas tablas de pruebas tienen *1.300.000* registros, 650.000 tienen un > length(valor)=12 y los 650.000 restantes un length(valor)=13.
Los dos update cambian los registros con length(valor) = 12. ¿Hay un error? > *Real :* > > En producción la tabla es de *13.000.000* de registros. Sobre ésta debo > hacer 2 updates.. para length(valor)=12 y 13. > El server está levemente mejor equipado en procesadores y ram que en > desarrollo.(y asumiendo lo mismo en velocidad de disco). > Preguntas: > > - Asumo que el upd2 seguirá siendo más rápido? No > - Dejo el vacuum para el final?.. o después del 2do. update? Te conviene antes del segundo update. Si no hubiera índice en la columna que estás cambiando, daría lo mismo (debido a HOT), pero no es el caso. Quizás te convenga botar los índices de la tabla antes de hacer los update, luego vacuum, luego reconstruir los índices. > - Asumo que el tiempo será mayor en la misma proporción del nuevo nro. de > registros??. Osea puedo pensar que demorará aprox. *200000* ms??.. Mídelo, 200 segundos no es tanto. Pero yo creo que debería tardar más. > y lo último: tienen alguna alternativa para estos updates en 8.2.5 ??.. > vi por ahí una línea para hacer un update único mezclando en el set el > lenght y el substr.... pero no me pareció eficiente.. Si vas a cambiar los mismos registros, te conviene hacerlo todo de una vez. -- Álvaro Herrera <[email protected]> The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
