Ver Mensaje Individual
  #12  
Antiguo 13-05-2008
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 22
mlara Va por buen camino
...o qué tal que esté migrando un sistema a Firebird y me encuentre con que sentencias que funcionan muy bien en Paradox no funcionan en Firebird 2.0.0 o 2.1.0? La verdad que a veces uno no sabe qué pensar, pues es precisamente lo que hago y me encuentro con algunas sorpresas como estas:
  1. Los predicados NOT IN y ALL no usan índices!!! Podría quedarme toda la vida esperando una respuesta del servidor cuando tengo alguno de estos predicados en mi sistema... y vaya que si los tengo. Es natural.
  2. Cuando tengo subconsultas, estas versiones, por cada registro retornado por la consulta exterior, realiza la consulta interior o subconsulta. No es lógico que si la consulta exterior me devuelve 10, 100, 1000, 10000, ... registros, entonces tenga que realizar ese número de veces la misma subconsulta. Al igual que en el caso anterior, no solamente el uso de la CPU llega al 100% dejándome completamente paralizado, sino que el tiempo es excesivo. Cómo es posible que en Paradox una sentencia que involucra una tabla con más de 1 millón de registros tome unos 5 segundos, mientras que en Firebird deba detener el servicio, cerrar forzadamente mi aplicación, desconectar a todos los clientes abruptamente, ... etc. Qué le digo a mis clientes? Que tomé una mala decisión?

Es claro que definitivamente un sistema se debe probar antes, pero hay cosas que uno no piensa que puedan llegar a suceder.

Esto en realidad me parece extraño y no termino de creerlo. Estamos haciendo pruebas con un cliente, pero nunca pensamos en algo tan grave como esto. Trato de reemplazar todas las consultas de este tipo, pero el sistema en realidad es grande y me está llevano tiempo. Aunque no se trate de un error propiamente dicho, cosa que pongo en duda, me cuestiono: Si usé InterBase 7.5 y nunca tuve este tipo de problemas, qué está pasando aquí? Ya sé que en este momento y desde hace mucho tiempo InterBase y Firebird son productos diferentes, pero Firebird tiene su origen en InterBase 6, por lo que me parece muy extraño... ... !!!

PD. Complicado esto de pasar de la versión 2.1 a la versión 1.5 incluso sin estar seguro de que esto no sucede también en esta versión. Será que debo adoptar InterBase 7.5 (o la versión 8) como motor elegido con las consecuentes implicaciones?
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.

Última edición por mlara fecha: 13-05-2008 a las 05:45:42.
Responder Con Cita