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. *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? - Dejo el vacuum para el final?.. o después del 2do. update? - Asumo que el tiempo será mayor en la misma proporción del nuevo nro. de registros??. Osea puedo pensar que demorará aprox. *200000* ms??.. o es mucho optimismo?.. :D .... (cargar la tabla de prueba con 1.300.000 de registros fue rápido... pero al recrear la tabla de prueba y querer cargarla con 13.000.000 se demoró demasiado... por eso hago la consulta sobre la proporción para el update) 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.. Saludos AP.
