Oracle
 sql >> Baza danych >  >> RDS >> Oracle

SQL Server i Oracle, który z nich jest lepszy pod względem skalowalności?

Zarówno Oracle, jak i SQL Server są bazami danych na dysku współdzielonym, więc są ograniczone przepustowością dysku dla zapytań, które skanują tabele na dużych ilościach danych. Produkty takie jak Teradata , Netezza lub DB/2 wydanie równoległe"nic nie są udostępniane" architektury, w których baza danych przechowuje partycje poziome w poszczególnych węzłach. Ten typ architektury zapewnia najlepszą wydajność zapytań równoległych, ponieważ dyski lokalne w każdym węźle nie są ograniczone przez centralne wąskie gardło w sieci SAN.

Systemy z dyskami współdzielonymi (takie jak Oracle Real Application Clusters lub Sklastrowany serwer SQL instalacje nadal wymagają współdzielonego SAN , który ma ograniczoną przepustowość przesyłania strumieniowego. W VLDB może to poważnie ograniczyć możliwą do osiągnięcia wydajność skanowania tabel. Większość zapytań hurtowni danych uruchamia skanowanie tabel lub zakresów w dużych blokach danych. Jeśli zapytanie trafi więcej niż kilka procent wierszy, skanowanie pojedynczej tabeli jest często optymalnym planem zapytania.

Wiele lokalnych macierzy dyskowych podłączanych bezpośrednio w węzłach zapewnia większą przepustowość dysku.

Powiedziawszy, że znam sklep Oracle DW (główny europejski operator telekomunikacyjny), który ma hurtownię danych opartą na Oracle, która ładuje 600 GB dziennie, więc architektura dysku współdzielonego nie wydaje się nakładać ograniczeń nie do pokonania.

Między MS-SQL i Oracle istnieją pewne różnice. IMHO Oracle ma lepszą obsługę VLDB niż serwer SQL z następujących powodów:

  • Oracle ma natywne wsparcie dla indeksów bitmapowych , które są strukturą indeksu odpowiednią dla szybkich zapytań hurtowni danych. Zasadniczo wykonują one procesor dla kompromisu we/wy, ponieważ są kodowane na długość działania i zajmują stosunkowo mało miejsca. Z drugiej strony Microsoft twierdzi, że Przecięcie indeksu nie jest zauważalnie wolniejszy.

  • Oracle ma lepsze funkcje partycjonowania tabel niż SQL Server. IIRC Partycjonowanie tabeli w SQL Server 2005 można wykonać tylko na jednej kolumnie.

  • Oracle można uruchomić na nieco większe sprzęt niż SQL Server, chociaż można uruchomić serwer SQL na niektórych dość z poważaniem duże systemy.

  • Oracle oferuje bardziej zaawansowane wsparcie dla widoków zmaterializowanych i Przepisywanie zapytań do optymalizacji zapytań relacyjnych. SQL2005 ma pewne możliwości przepisywania zapytań, ale jest słabo udokumentowane i nie widziałem go w systemie produkcyjnym. Firma Microsoft zasugeruje jednak korzystanie z Usługi analityczne , który faktycznie obsługuje konfiguracje niczego współdzielonego.

O ile nie masz naprawdę biblijnych ilości danych i nie wybierasz między Oracle a architekturą współdzieloną, taką jak Teradata, prawdopodobnie zobaczysz niewielką praktyczną różnicę między Oracle a SQL Server. Szczególnie od czasu wprowadzenia SQL2005 funkcje partycjonowania w SQL Server są postrzegane jako wystarczająco dobre i istnieją dużo przykładów z wieloterabajtowy systemy, które zostały na nim pomyślnie wdrożone.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Widok ALL_PROCEDURES nie pokazuje PROCEDURE_NAME

  2. Jak podłączyć R do Oracle?

  3. Niska wydajność dla głęboko zagnieżdżonego faktoringu podzapytań (CTE)

  4. Oracle SQL:Filtrowanie według ROWNUM nie zwraca wyników, gdy powinno

  5. Typ danych Oracle:czy powinienem używać VARCHAR2 czy CHAR?