sql >> Base de Datos >  >> RDS >> Oracle

SQL Server y Oracle, ¿cuál es mejor en términos de escalabilidad?

Tanto Oracle como SQL Server son bases de datos de disco compartido, por lo que están limitadas por el ancho de banda del disco para consultas que analizan grandes volúmenes de datos. Productos como Teradata , Netezza o DB/2 Parallel Edition son 'no comparten nada' arquitecturas donde la base de datos almacena particiones horizontales en los nodos individuales. Este tipo de arquitectura brinda el mejor rendimiento de consultas en paralelo, ya que los discos locales en cada nodo no están restringidos por un cuello de botella central en una SAN.

Sistemas de discos compartidos (como Oracle Real Application Clusters o Clustered SQL Server las instalaciones aún requieren un SAN compartido , que tiene un ancho de banda limitado para la transmisión. En un VLDB, esto puede restringir seriamente el rendimiento de escaneo de tablas que es posible lograr. La mayoría de las consultas de almacenamiento de datos ejecutan exploraciones de tablas o rangos en grandes bloques de datos. Si la consulta afectará a más de un pequeño porcentaje de filas, una sola exploración de la tabla suele ser el plan de consulta óptimo.

Múltiples arreglos de discos locales de conexión directa en nodos brindan más ancho de banda de disco.

Habiendo dicho eso, conozco una tienda Oracle DW (una de las principales empresas de telecomunicaciones europeas) que tiene un almacén de datos basado en Oracle que carga 600 GB por día, por lo que la arquitectura de disco compartido no parece imponer limitaciones insuperables.

Entre MS-SQL y Oracle hay algunas diferencias. En mi humilde opinión, Oracle tiene una mejor compatibilidad con VLDB que el servidor SQL por las siguientes razones:

  • Oracle tiene soporte nativo para índices de mapa de bits , que son una estructura de índice adecuada para consultas de almacenamiento de datos de alta velocidad. Esencialmente hacen una compensación de CPU para E/S, ya que están codificados por longitud de ejecución y usan relativamente poco espacio. Por otro lado, Microsoft afirma que Index Intersection no es apreciablemente más lento.

  • Oracle tiene mejores instalaciones de partición de tablas que SQL Server. IIRC La partición de tablas en SQL Server 2005 solo se puede realizar en una sola columna.

  • Oracle se puede ejecutar en algo más grande hardware que SQL Server, aunque uno puede ejecutar SQL Server en algunos bastante respetablemente grande sistemas.

  • Oracle tiene un soporte más maduro para vistas materializadas y Reescritura de consulta para optimizar las consultas relacionales. SQL2005 tiene cierta capacidad de reescritura de consultas, pero está mal documentado y no lo he visto utilizado en un sistema de producción. Sin embargo, Microsoft le sugerirá que use Analysis Services , que en realidad admite configuraciones de nada compartido.

A menos que tenga volúmenes de datos verdaderamente bíblicos y esté eligiendo entre Oracle y una arquitectura compartida como Teradata, probablemente verá poca diferencia práctica entre Oracle y SQL Server. Particularmente desde la introducción de SQL2005, las funciones de partición en SQL Server se consideran lo suficientemente buenas y hay mucho de ejemplos de multiterabyte sistemas que se han implementado con éxito en él.