Pregunta

Anteriormente he publicado una pregunta para que pudiera confirmar nuestra actual (aunque arcaica) versión de Informix aquí:

¿Cómo se identifica la versión de Informix en Solaris?

(Gracias Jonathan y RET para aclarar eso)

Estamos definitivamente planeando mejorar pero estamos discutiendo primero si tendría más sentido para mover a Oracle o Sybase en este momento. Cual es tu opinión sobre esto? Es mi creencia de que, si bien los 3 RDBMs tienen su propia singularidad, todos ellos deben cubrir el mismo terreno en esencia. Entonces, ¿cómo hace uno para decidir qué base de datos utilizar?

La gran kicker es que necesito saber si aumentamos Informix (actualmente usando 7,13), vamos a tener que modificar nuestros programas de SQL incorporado de C? Si no es así, entonces tiene mucho sentido seguir con Informix. Porque si fuimos con Sybase / Oracle, etc, tendríamos un montón de trabajo en nuestras manos para actualizar los programas de back-end.

Pero si el cambio a otra base de datos puede ofrecer un gran rendimiento en comparación entonces todavía tendremos en cuenta. Espero con interés escuchar sus opiniones.

¿Fue útil?

Solución

Soy un observador sesgados (yo trabajo para IBM Informix en) - el tratamiento de mis comentarios con la debida precaución

.

Si su aplicación está escrita en Informix ESQL / C, se tendría que hacer una cirugía mayor para moverlos a otros sistemas. Lo que se necesita para decidir qué interfaz alternativa al uso - su elección de plataforma cruzada (con C como el lenguaje básico) es ODBC, pero Oracle proporciona a la OCI y Sybase proporciona el TDS como alternativas

.

Por el contrario, con Informix ESQL / C, una actualización a la versión actual (Informix ClientSDK 3,50, que contiene ESQL / C 3.50, que es más reciente que el ESQL / C 6.00 que se utiliza actualmente ) debe ser sin dolor a menos que haya salido de su manera de escribir código malo.

Incluso simplemente migrando los datos podrían ser un poco traumático - no tan insuperablemente. En parte, la complejidad depende de qué tipos de datos que utiliza. (Cadenas de caracteres migrar fácilmente; los valores de fecha y hora con menos facilidad, por ejemplo.) Sin embargo, la migración de las aplicaciones requerirían mucho trabajo, como usted dice, a menos que fueras extraordinariamente profética y escribió una muy buena capa de abstracción de datos

.

Una actualización a Informix SE 7,26 sería una obviedad - obtener el software, instalarlo, apunte en su base de datos existente. Usted probablemente querrá volver a compilar sus programas para utilizar el CSDK más moderno, pero se puede hacer eso de forma incremental con cuidado (dos valores INFORMIXDIR, uno para el viejo código, uno para el nuevo).

Una actualización a Informix Dynamic Server (IDS) 11.50 requeriría que exportar los datos (DB-exportación) de SE y la importación (DB-Import) en IDS. Esto sería muy simple también, una vez que tenga IDS en funcionamiento. Conseguir IDS en funcionamiento requiere más esfuerzo que el SE, pero no es tan difícil.

Es evidente que mi recomendación es que se quedara con Informix. La decisión es suya, por supuesto.


  

Con IDS, tendríamos que hacer cambios en el código o simplemente recompilar?

IDS está muy estrechamente relacionado con SE, pero son diferentes. IDS proporciona un superconjunto casi estricta funcionalidad de SE. Los lugares que se me ocurre cuando existen diferencias son principalmente cosas caso extremo:

  • SE tiene una sintaxis adicional para crear tabla de localización de archivos C-ISAM de la base de datos; IDS tiene un conjunto completamente diferente de las extensiones. La tabla básica de crear es la misma (aunque IDS tiene tipos que se no, como VARCHAR), pero los adornos son diferentes.
  • SE tiene CREATE AUDIT y GOTA DE AUDITORÍA e IDS no lo hace (que tiene otros recursos de auditoría).
  • SE tiene start database y base de datos ROLLFORWARD; IDS no (recuperación y el registro en IDS es diferente).

El área principal que puede causar problemas es la gestión de transacciones. IDS ha invitados, conectado y en la base de datos 'LOG modo ANSI', como lo hace el SE. En IDS, se le anima a utilizar una base de datos conectado - que sería una recomendación sólida. IDS ofrece declaraciones atómicas en una base de datos conectado - o de la declaración de obra en su conjunto o se produce un error en su conjunto. Sin embargo, muchas aplicaciones se no se escriben con las transacciones en mente. Hay algunas cosas que no se puede hacer cuando hay transacciones en la base de datos, tales como un cursor abierto para la actualización fuera del ámbito de una transacción. Esto es lo que tiende a morder código de migración de SE a IDS. Además, no se puede bloquear una tabla, excepto en una transacción, y no se puede desbloquear una tabla, excepto por COMMIT o ROLLBACK.

¿Cuánto de un problema que será depende de lo que estaba utilizando en el SE y cómo se diseñan los programas (si es que fueron diseñados en lugar de lanzados juntos). Una base de datos IDS no talado y no talado una base de datos SE están muy cerca - y que podrían migrar de una a la otra. Pero IDS pueden hacer cosas (como la replicación) sólo cuando se registran las bases de datos, y debe apuntar a utilizar bases de datos registradas.

Sin embargo, la migración a CSDK 3.50 debe ser sólo una recompilación a menos que haya logrado hacer algo realmente insoportablely cosas terribles.

Otros consejos

Los rumores de la desaparición de Informix son muy exagerados.

Con la inversión en el código embebido que tiene, cualquier aparente ahorro de costes precio de etiqueta que se tenía del cambio a O marca o marca S desaparecería muy rápidamente en los costos de reconstrucción. Eso es sólo un hecho de la vida: He visto proyectos queman $ 100K + en remodelación para ahorrar $ 20K P. A. en la concesión de licencias. Eso no es dinero bien gastado.

Usted quiere ser muy, muy seguro de que el interruptor de RDBMS se va a ofrecer algo que realmente no podía lograr la pervivencia de lo que tiene. Debido a que el riesgo (por amarga experiencia - He luchado contra él largo y duro). Es que eres capaz de gastar una fortuna en dólares y tiempo sólo se ejecuta en el mismo lugar, si no se va hacia atrás

Si usted va a dar un paso atrás y mirar a su problema de manera integral, creo que sería mucho mejor si la evaluación de las posibilidades de acoplamiento flexible arquitecturas de bases de datos más recientes, agnóstico, que el canje de un modelo integrado para otro. Esto le proporcionaría una mayor flexibilidad en la pista.

Espero que ayude.

Hemos estado apoyando Informix DB por años con GeneXus. Informix es una gran base de datos pero no hay una gran cantidad de herramientas a su alrededor para ayudar a construir de una manera ágil. Sé que muchas tiendas de Informix que sólo utilizan el IDE de GeneXus para construir aplicaciones web y aplicaciones de teléfonos inteligentes. Si usted no ha oído hablar de GeneXus, comprobar que funciona.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top