Dado el manejo de licencias de Oracle [a] (y, en menor medida, el costo), siempre me he preguntado cuáles serían los factores decisivos para elegir Oracle en lugar de PostgreSQL o MySQL.
Mi compañía casi siempre elige Oracle (XE cuando sea posible), incluso para proyectos pequeños en los que solo hay una única caja de servidor de Windows simple que ejecuta la base de datos sin ninguna administración de DB dedicada. (Tenga en cuenta que pequeñas no no quiere decir los datos cabrá siempre las más pequeñas restricciones de tamaño de Oracle XE).
Siempre he cuestionado esta opción, pero tiene el beneficio de que al menos estamos expuestos a un solo producto de base de datos.
Aún así, dado un nuevo proyecto, donde necesita un RDBMS, pero el proyecto y el alcance de la base de datos es bastante pequeño, en función de las características únicas de Oracle que se ejecutan en simples cajas de servidor de Windows (sin demasiada administración dedicada) elegiría Oracle en lugar de otro RDBMS?
Contexto adicional : muchas de nuestras implementaciones de bases de datos se ejecutan en los sitios de los clientes en un modo de "baja administración". Es decir, la base de datos se configura una vez. Hay algunas pruebas iniciales sobre su comportamiento y rendimiento correctos en el sitio. Después de esto, la base de datos simplemente se ejecuta. No se realiza una administración regular. Solo si algo no funciona, un técnico (no un DBA dedicado) verificará la base de datos, tratando de averiguar qué pasa. La copia de seguridad se realiza principalmente como copia de seguridad fuera de línea. En algunos proyectos, a los clientes no les importa que haya un RDBMS involucrado. Simplemente ven su aplicación como una caja negra que funciona (o no).
[a]: Donde yo trabajo, tomó varios gestores de proyectos en varias ocasiones meses para conseguir la obtención de licencias para proyectos pequeños como los representantes locales de Oracle simplemente no están muy interesados en la venta de su producto si el ingreso es más bien pequeña.
Respuestas:
Solo puedo intentar responder por Oracle y postgres. Después de usar Oracle exclusivamente durante años, y postgres solo durante los últimos dos años, me encantan los postgres. Hay tantas formas pequeñas que es más conveniente de usar que Oracle, y comparte muchos de los beneficios cruciales (como MVCC). Es más fácil de administrar, confiable, tiene una excelente documentación y, por supuesto, es gratis.
Sin embargo, postgres no es rival para Oracle en algunas áreas, como:
Curiosamente, casi todas estas características están ausentes o lisiadas en XE. Creo que elegiría postgres sobre XE, todo lo demás es igual, pero ...
... nada de esto aborda las dos razones principales para elegir Oracle:
EDITAR:
La única situación en la que elegiría postgres sobre XE cada vez es si la seguridad es una preocupación. Si su base de datos o alguna de sus aplicaciones están expuestas a Internet público, no estoy seguro de si XE es una buena idea.
fuente
Oracle Apex . Un entorno de aplicaciones web práctico y fácil de usar integrado en la base de datos. En pocas palabras, hace que sea muy sencillo implementar aplicaciones de 'caja única' con la interfaz de usuario web / lógica de aplicación / base de datos en un solo paquete integrado.
PD. 11g XE (actualmente en versión beta) amplía el almacenamiento a más de 10 GB.
fuente
Aunque las otras opciones de flashback de Oracle no están disponibles en Express Edition, Flashback Query sí lo está. De acuerdo con la pregunta al respecto , ninguna otra base de datos tiene esta característica que permita que una instrucción select consulte datos a partir de un momento en el pasado. Los datos de Flashback se pueden unir con los datos actuales e insertar en las tablas actuales, lo que lo hace útil para deshacer operaciones de tipo, cambios temporales y comparar cambios realizados por un método en un solo lugar.
Algunas otras cosas que otras bases de datos no tienen que Oracle Express Edition tiene.
fuente
En primer lugar, creo que no debe subestimar el factor de que ya hay Oracle Know-How presente pero no para otros RDBMS. Desarrollar conocimiento para los demás requiere tiempo y dinero y también puede estar acompañado de algunos errores al comienzo.
Además, nunca se sabe si un pequeño proyecto no crecerá en algún momento. Luego, puede actualizar de manera rápida y sin problemas de XE a Standard Edition One a Standard Edition a Enterprise Edition. Una migración desde otro RDBMS volverá a requerir mucho más tiempo y dinero. En pocas palabras: creo que su empresa lo hace bien, está bien, puedo ser un poco parcial :-)
fuente
count()
, que parece ser el talón de Aquiles de postgres). Tuve que preguntar en stackoverflow cómo influir en el planificadorUna de las buenas características de Oracle son aquellas como Oracle Resource Manager que hacen que la consolidación de aplicaciones en una base de datos sea mucho más fácil que tener una base de datos separada para cada aplicación. Parece que esto no se usa en su organización. He diseñado bases de datos consolidadas en el pasado para proyectos como usted menciona.
Esto provocó que incluso el más simple de todos los proyectos tomara meses en comenzar, y en un momento en el que el tiempo de comercialización es extremadamente importante, esto es mortal. Por alguna razón, muchos lo pasan por alto, a menudo incluso descuidados por razones políticas.
La solución para esto es bastante simple. Cree una base de datos seria, dé a cada proyecto / aplicación sus propios esquemas y acceda a los usuarios y comience a funcionar en horas, en lugar de meses. Si va a hacer algo como esto, podría resultar beneficioso combinar aplicaciones que tengan requisitos de tiempo de actividad similares. Oracle obtiene cada vez más opciones de mantenimiento en línea, pero a veces, obtener unas pocas horas de tiempo de inactividad es mucho más fácil. Tener ventanas de tiempo definidas de antemano podría evitar muchos problemas. Necesitará un poco de tiempo de inactividad.
No permita que las aplicaciones se conecten a la base de datos, haga que se conecten a servicios dedicados a la aplicación utilizando sus propios alias tns. Hacerlo le permite mover la aplicación a otra base de datos, sin tener que volver a configurarla.
Por cierto: las compañías que usaron esta forma de consolidación ahorraron mucho efectivo anualmente, más de las licencias requeridas para comenzar a funcionar.
fuente