sql >> Database teknologi >  >> RDS >> Oracle

SQL Server og Oracle, hvilken er bedst med hensyn til skalerbarhed?

Både Oracle og SQL Server er databaser med delte diske, så de er begrænset af diskbåndbredde til forespørgsler, som tabel scanner over store mængder data. Produkter såsom Teradata , Netezza eller DB/2 Parallel Edition er 'delt intet' arkitekturer, hvor databasen gemmer vandrette partitioner på de enkelte noder. Denne type arkitektur giver den bedste parallelle forespørgselsydeevne, da de lokale diske på hver node ikke er begrænset gennem en central flaskehals på et SAN.

Delte disksystemer (såsom Oracle rigtige applikationsklynger eller Clustered SQL Server installationer kræver stadig et delt SAN , som har begrænset båndbredde til streaming. På en VLDB kan dette alvorligt begrænse den tabelscanningsydelse, der er mulig at opnå. De fleste datavarehusforespørgsler kører tabel- eller områdescanninger på tværs af store datablokke. Hvis forespørgslen rammer mere end nogle få procent af rækkerne, er en enkelt tabelscanning ofte den optimale forespørgselsplan.

Flere lokale direkte tilknyttede diskarrays på noder giver mere diskbåndbredde.

Når det er sagt, kender jeg til en Oracle DW-butik (en større europæisk teleselskab), der har et oracle-baseret datavarehus, der indlæser 600 GB pr. dag, så den delte disk-arkitektur ser ikke ud til at pålægge uoverstigelige begrænsninger.

Mellem MS-SQL og Oracle er der nogle forskelle. IMHO Oracle har bedre VLDB-understøttelse end SQL-server af følgende årsager:

  • Oracle har indbygget understøttelse af bitmapindekser , som er en indeksstruktur, der er velegnet til højhastighedsdatavarehusforespørgsler. De laver i det væsentlige en CPU til I/O-afvejning, da de er kørelængdekodede og bruger relativt lidt plads. På den anden side hævder Microsoft, at Index Intersection er ikke nævneværdigt langsommere.

  • Oracle har bedre tabelopdelingsfaciliteter end SQL Server. IIRC Tabelopdelingen i SQL Server 2005 kan kun udføres på en enkelt kolonne.

  • Oracle kan køres på noget større hardware end SQL Server, selvom man kan køre SQL-server på nogle ganske respektabelt a> stor systemer.

  • Oracle har mere moden understøttelse af materialiserede visninger og Omskrivning af forespørgsler at optimere relationelle forespørgsler. SQL2005 har en vis evne til at omskrive forespørgsler, men det er dårligt dokumenteret, og jeg har ikke set det brugt i et produktionssystem. Microsoft vil dog foreslå, at du bruger Analysetjenester , som faktisk understøtter delt intet-konfigurationer.

Medmindre du har virkelig bibelske datamængder og vælger mellem Oracle og en delt ingenting-arkitektur som f.eks. Teradata, vil du sandsynligvis ikke se nogen praktisk forskel mellem Oracle og SQL Server. Især siden introduktionen af ​​SQL2005 anses partitioneringsfaciliteterne i SQL Server som gode nok, og der er masser af eksempler af multi-terabyte systemer, der er blevet implementeret på den.



  1. Entity Framework 6 transaktion rollback

  2. for at slette en bestemt række fra databasen samt html-tabel ved tilsvarende knapklik

  3. Udfører SELECT ... WHERE ... IN ... ved hjælp af MySQLdb

  4. MySQL prøvedatabase