Servidor SQL y Oracle
Apertura de SQL Server
solo se puede ejecutar en Windows, no hay ninguna apertura y el sistema operativo El sistema tiene estabilidad de la base de datos es muy importante. Los productos de la serie Windows9X se centran en aplicaciones de escritorio y el servidor NT sólo es adecuado para pequeñas y medianas empresas. Y la plataforma Windows tiene confiabilidad, seguridad y escalabilidad muy limitadas. No está tan probado como Unix, especialmente cuando se trata de grandes cantidades de datos críticos para el negocio.
Oracle
se ejecuta en todas las plataformas principales, incluido Windows. Todos los estándares de la industria son totalmente compatibles. Adopte una estrategia completamente abierta. Permitir a los clientes elegir la solución más adecuada. Soporte completo para desarrolladores.
DB2
se ejecuta en todas las plataformas principales, incluido Windows. DB2 es el más utilizado a nivel empresarial. Entre las 500 empresas más importantes del mundo, casi el 85% utiliza servidores de bases de datos DB2, mientras que en China la cifra era de alrededor del 5% en 1997.
Escalabilidad, paralelismo SQL Server
La ejecución paralela y el modelo de almacenamiento *** son inmaduros. Es difícil manejar el creciente número de usuarios y el volumen de datos. Oracle
Parallel Server amplía la funcionalidad de Windows NT para que un grupo de nodos pueda compartir trabajo en el mismo clúster, proporcionando una solución de clúster con alta disponibilidad y escalabilidad. Si Windows NT no cumple con los requisitos, los usuarios pueden mover la base de datos a UNIX.
DB2
DB2 tiene un fuerte paralelismo. DB2 extiende la gestión de bases de datos a entornos paralelos de múltiples nodos. Una partición de base de datos es una parte de una base de datos que contiene sus propios datos, índices, archivos de configuración y registros de transacciones. Las particiones de la base de datos a veces se denominan nodos o nodos de la base de datos.
Seguridad
SQL Server
no ha obtenido ningún certificado de seguridad.
Oracle Server
está certificado según los estándares ISO, el nivel más alto de certificación.
DB2
está certificado con los más altos niveles de estándares ISO.
Rendimiento
SQL Server
Rendimiento deficiente con varios usuarios
Oracle
Rendimiento más alto en Windows Mantiene el récord mundial para TPC-D y TPC-C bajo NT.
DB2
Alto rendimiento para almacenamiento de datos y procesamiento de transacciones en línea.
Soporte de cliente y modelo de aplicación
SQL Server
Estructura C/S, solo admite clientes Windows y puede utilizar conexiones ADO, DAO, OLEDB, ODBC.
Oracle
La computación en red multinivel admite múltiples estándares de la industria y se puede conectar mediante ODBC, JDBC, OCI y otros clientes de red.
DB2
Estructura multiplataforma y multinivel, soporta ODBC, JDBC y otros clientes.
Funcionamiento sencillo
SQL Server
Funcionamiento sencillo, pero sólo una interfaz gráfica.
Oracle
es más complejo, con una interfaz gráfica de usuario y una línea de comandos, y funciona igual en Windows NT y Unix.
DB2
Simple, tiene una interfaz gráfica de usuario y una línea de comandos, y funciona igual en Windows NT y Unix.
Riesgos de uso
SQL Server
Código completamente reescrito, probado durante mucho tiempo, constantemente retrasado, muchas funciones requieren tiempo para verificarse. No muy compatible con productos anteriores. Úselo bajo su propio riesgo.
Oracle
Experiencia en desarrollo a largo plazo, totalmente compatible con versiones anteriores. Ampliamente utilizado. Completamente libre de riesgos.
DB2
se utiliza ampliamente en grandes empresas y tiene buena compatibilidad con versiones anteriores. El riesgo es pequeño.
Oracle y SQL Server en aplicaciones empresariales
Mi empresa no sólo tiene una base de datos Oracle, sino también una base de datos SQL Server.
La primera pregunta suele ser: "¿Puedes enseñarme a usar Oracle?". Normalmente respondo cortésmente: "Claro, en realidad estoy dando un curso de Oracle; cuando el curso esté listo, lo haré". Te llamaré. Esa es una buena manera, no le diré al investigador que podría llevarme semanas. A veces, voy un paso más allá y les digo dónde pueden descargar una versión completa de Oracle para instalarla y familiarizarse con ella. Pero a veces esto me mete en problemas porque atrae a demasiados seguidores.
El segundo caso suele empezar así: "Estamos teniendo algunos problemas con SQL Server y quiero ver cómo lo maneja Oracle. Bueno, finalmente estamos progresando. Puedo ayudarlos, pero No me tomará horas de mi tiempo. Esta debería ser una descripción bien pensada del problema específico, y la respuesta de Oracle a la pregunta indicará al autor de la pregunta un camino que podría llevarlo al problema de SQL Server. El autor de la pregunta fue: "Nuestra base de datos de SQL Server se está volviendo demasiado grande. ¿Cómo manejará esto Oracle?" jajaja... Parece que estaba equivocado
Me encantaría ayudar, pero...
Quizás mi enfoque fue incorrecto desde el principio. Quizás debería escribir un resumen de algunos de los problemas involucrados, para que cuando alguien me pida ayuda, pueda darle esta lista de preguntas. Al obtener una educación general sobre Oracle, la lista puede ser un poco más extensa. Por otro lado, si la persona está buscando una solución específica y cuantificable, este manual también puede ayudarle a avanzar en la dirección correcta para obtener la respuesta. sobre la mesa.
Pero no haré eso porque tomaría demasiado tiempo. Puedo ayudar a estos "propietarios", pero realmente me preocupa que dedicar demasiado tiempo a ellos establezca un problema. Mal precedente y los animo a que vuelvan a consultarme como una alternativa. Voy a dedicar unos minutos a hablar sobre las fallas de diseño de SQL Server. Las cosas involucradas en la arquitectura no se pueden cambiar si profundizas en los detalles técnicos. En términos generales, no se puede obtener el principio evidente de la comparación de plataformas de bases de datos. Por el contrario, si decide utilizar la plataforma de bases de datos de Microsoft, es posible que nosotros manejemos mejor sus características o fallas, pero las básicas. El mecanismo del producto no es fácil de cambiar; por supuesto, el resultado final del software de código cerrado tampoco es fácil para los usuarios. Por supuesto, hay formas de aliviar el dolor, pero existen enormes diferencias entre las dos plataformas. sin mencionar las diferencias en la raíz de muchos de los problemas.
Tenga en cuenta que no estoy defendiendo el sistema de floristería. Microsoft está haciendo todo lo posible para entrar en el territorio empresarial y de Oracle, así que esto es de lo que estoy hablando. : Preocupaciones de los administradores de sistemas empresariales La cuestión es...
Dado que la empresa para la que trabajo gestiona un sistema de nivel empresarial (nuestro sistema es SAP), prefiero utilizar un sistema multiusuario (multi-usuario). usuario) base de datos. Ahora, puede que piense que uso este término demasiado a la ligera. En realidad, hay toneladas de personas que utilizan SQL Server en entornos multiusuario, ¿verdad? ¿O es independiente de los usuarios concurrentes? Por ejemplo, veamos el bloqueo. Al principio, Microsoft le dirá que el mecanismo "lector-casillero-escritor" es seguro y confiable. Le dirá que este mecanismo evita que los usuarios realicen "lecturas sucias". No creas en estas tonterías, es sólo una excusa para un mal desempeño. Esto me recuerda la posición de larga data de Sun de que los sistemas de 64 bits son innecesarios.
Por "innecesario" quiero decir que no era necesario que existieran sistemas de 64 bits antes de su venta. Al día siguiente, Scott McNealy está frente a usted hablando sobre las virtudes de abordar cada vez más la memoria física.
Entonces, ¿qué es una "interpretación errónea"? Microsoft le indica que se producen errores de lectura cuando alguien actualiza una fila de datos y usted está a punto de leer la fila de datos que se está actualizando. Interpretación errónea = datos incorrectos: eso es lo que Microsoft quiere hacerle creer. Pero, ¿qué sucede si no se envía una operación de actualización durante mucho tiempo? Los datos realmente no han cambiado. ¿Qué sucede si la operación de actualización se revierte al final de la transacción? ¿Qué están esperando estos lectores? Nada.
Es como si estuviera en el supermercado, parada frente a los zumos, intentando decidir cuál comprar. Sé que quiero elegir uno y sé que mis hijos necesitan jugo para el desayuno de mañana. Me he puesto en contacto con vosotros, pero todavía no he decidido cuál comprar. Compré jugo de manzana la semana pasada. ¿Qué compré la semana pasada? Jugo de uva blanca. Me pregunto si es hora de comprar jugo de uva agria. Por otro lado, mientras pienso esto, tú estás parado justo detrás de mí y probablemente estés pensando: "¿Cuándo va a coger este idiota una botella y se quitará de mi camino? Sé lo que quiero".
Nos encontrarás a todos parados frente al supermercado de Microsoft, esperando a que tome una decisión antes de ver cuáles son las opciones. El hecho de que veas un tentador zumo de uva agria en el estante y yo pueda comprarlo no significa absolutamente nada para ti. Porque puede que solo esté mirando, pero Microsoft sabe que quieres comprar jugo, así que tienes que esperar a que deje de deambular o recoger cosas, todo antes de conseguir algo.
¿Oracle hará que sus datos sean más pequeños y más fáciles de ver?
En la tienda Oracle que hay al final de la calle, puedes ver lo que hay disponible durante todo el día, incluso si ya lo he mirado o estoy comprando algo. Tal vez haya más jugo, tal vez sea más pequeño, ¿quién sabe? De todos modos, todavía no lo he decidido, así que ¿por qué no mostrarles lo que hay disponible? Quizás me beba mi última botella de jugo de uva agria. Quizás no, pero ¿te hará algún daño dejarte ver lo que hay ahí fuera? Puedes llamar a tu esposa y decirle "Olvidé lo que pediste, pero aquí hay algo..."
Notarás que en Oracle, lo único que le importa al lector es si la fila de datos se ha actualizado. por mucho tiempo. Podría modificar una fila de datos en la memoria que, a pesar de estar relacionados con otra persona, no se actualizará hasta que emita el comando de confirmación. De hecho, puede que no sea un buen programador y que conserve filas de datos durante mucho tiempo antes de enviarlas. O bien, podría decidir no modificar el registro en absoluto y simplemente hacer una reversión. De esa manera, los datos no cambian en absoluto, pero al mismo tiempo, ya sea que haya iniciado sesión en el sistema o no, y esté haciendo una actualización o no, usted puede continuar con su negocio. Sin embargo, la fila de datos no cambia hasta que la modifico y emito el comando de confirmación, y hasta entonces no se puede leer el nuevo valor. Porque antes de esto, el nuevo valor no existe oficialmente.
Podrías pensar que se trata de una pequeña diferencia. Pero puedo decirles que es una distinción crucial. Cuando necesite admitir un sistema con múltiples actualizaciones simultáneas en el mismo rango de la misma tabla de datos, si siempre hay varios usuarios consultando simultáneamente los datos que está procesando, encontrará el mecanismo de "servidor" "lector-bloqueador-escritura" hará que el producto deje de funcionar. Esto es simplemente inaceptable en un sistema empresarial.
Quizás más adelante analicemos otros aspectos arquitectónicos. Por ejemplo
- Aumento de bloqueos debido a memoria insuficiente
- SQL Server no puede admitir la coherencia de las operaciones de lectura y, por lo tanto, devuelve datos incorrectos
- DBCC que requiere mucho tiempo transacciones de mantenimiento de clases para detectar/prevenir la degradación del rendimiento
- Base de datos "autoajustable" de Microsoft,
- La base de datos "autoajustable" de Microsoft se utiliza en muchas situaciones que dificultan la capacidad de administradores de bases de datos (DBA)
-SQL Server carece de escalabilidad, independientemente de los resultados de TPC
Por supuesto, hay más problemas que deben abordarse, pero el de hoy Eso es todo.