jump to navigation

No sólo programan los programadores November 22, 2007

Posted by Iñigo in : mensajes de error , trackback

Como ahora están de moda las aplicaciones cascarón (como SAP) en las que el cliente / usuario puede (tiene) modificar (estropear) a su gusto, a veces te encuentras con perlas como ésta (modificada para proteger a los inocentes):

select * from a.table where (( a not like ‘10.0.0.1′) or (a not like ‘10.0.0.2′) or (a not like ‘10.0.0.3′) or (a not like ‘10.0.0.4′)……… y así sucesivamente hasta llegar a (a not like ‘10.0.255.255′) )

¿Porqué ha pasado esto?

Ese select lo mantenía hace tres años una persona que se fue de la empresa. El mantenimiento lo heredó otra persona que se fue hace seis meses, que a su vez legó a un comité de personas demasiado ocupadas como para preguntar, que al final legaron a un subcontratado al que nadie explicó nada y que aprendió a base de copiar, pegar, y ver que pasaba.

El resultado: el servidor SQL tiene que ejecutar (casi) 1024 veces una función que construye una expresión regular por cada fila de la tabla (como sólo tenemos 40.000 registros, no tarda tanto), y los programadores de la aplicación (gringos, of course) están rascándose la cabeza pensando porqué alguien quiere ejecutar algo así…

Tenemos suerte de que el gestor SQL sólo pueda usar un hilo de ejecución (thread) y que el servidor tenga más de una CPU… si no, tendríamos un trozo de metal y plástico humeante en vez de un servidor de los que responden al ping y esas cosas…

Digno del daily WTF (worse than failure).

Technorati Tags:

Technorati Tags: ,

Comments»

no comments yet - be the first?


Close
E-mail It