Oracle
 sql >> Base de données >  >> RDS >> Oracle

SQL Server et Oracle, lequel est le meilleur en termes d'évolutivité ?

Oracle et SQL Server sont tous deux des bases de données à disque partagé, ils sont donc limités par la bande passante du disque pour les requêtes que la table analyse sur de gros volumes de données. Produits tels que Teradata , Netezza ou DB/2 Parallel Edition sont 'ne partagent rien' architectures où la base de données stocke des partitions horizontales sur les nœuds individuels. Ce type d'architecture offre les meilleures performances de requête parallèle car les disques locaux de chaque nœud ne sont pas limités par un goulot d'étranglement central sur un SAN.

Systèmes de disques partagés (tels qu'Oracle Real Application Clusters ou SQL Server en cluster les installations nécessitent toujours un SAN partagé , qui a limité la bande passante pour le streaming. Sur une VLDB, cela peut sérieusement limiter les performances d'analyse de table qu'il est possible d'obtenir. La plupart des requêtes d'entrepôt de données exécutent des analyses de table ou de plage sur de grands blocs de données. Si la requête atteint plus de quelques pourcents de lignes, une seule analyse de table est souvent le plan de requête optimal.

Plusieurs baies de disques locales à connexion directe sur les nœuds offrent plus de bande passante disque.

Cela dit, je connais une boutique Oracle DW (une grande entreprise de télécommunications européenne) qui dispose d'un entrepôt de données basé sur Oracle qui charge 600 Go par jour, de sorte que l'architecture de disque partagé ne semble pas imposer de limitations insurmontables.

Entre MS-SQL et Oracle, il existe quelques différences. IMHO Oracle a un meilleur support VLDB que SQL Server pour les raisons suivantes :

  • Oracle prend en charge nativement les index bitmap , qui sont une structure d'index adaptée aux requêtes d'entrepôt de données à grande vitesse. Ils font essentiellement un compromis entre le CPU et les E/S car ils sont codés en longueur et utilisent relativement peu d'espace. D'autre part, Microsoft affirme que Index Intersection n'est pas sensiblement plus lent.

  • Oracle dispose de meilleures fonctionnalités de partitionnement de table que SQL Server. IIRC Le partitionnement de table dans SQL Server 2005 ne peut se faire que sur une seule colonne.

  • Oracle peut être exécuté sur quelque peu plus large matériel que SQL Server, bien que l'on puisse exécuter SQL Server sur certains assez respectueusement grand systèmes.

  • Oracle a une prise en charge plus mature des Vues matérialisées et réécriture de requête pour optimiser les requêtes relationnelles. SQL2005 a une certaine capacité de réécriture de requête, mais il est mal documenté et je ne l'ai pas vu utilisé dans un système de production. Cependant, Microsoft vous suggérera d'utiliser Analysis Services , qui prend en charge les configurations sans partage.

À moins que vous ne disposiez de volumes de données véritablement bibliques et que vous choisissiez entre Oracle et une architecture sans partage telle que Teradata, vous ne verrez probablement que peu de différence pratique entre Oracle et SQL Server. En particulier depuis l'introduction de SQL2005, les fonctionnalités de partitionnement de SQL Server sont considérées comme suffisamment bonnes et il existe beaucoup d'exemples de multi-téraoctet systèmes qui y ont été implémentés avec succès.