sql >> Databáze >  >> RDS >> Oracle

SQL Server a Oracle, který z nich je lepší z hlediska škálovatelnosti?

Oracle i SQL Server jsou databáze se sdíleným diskem, takže jsou omezeny šířkou pásma disku pro dotazy, které tabulky prohledávají velké objemy dat. Produkty jako Teradata , Netezza nebo DB/2 Parallel Edition jsou 'nic nesdílejí' architektury, kde databáze ukládá horizontální oddíly na jednotlivých uzlech. Tento typ architektury poskytuje nejlepší výkon paralelních dotazů, protože místní disky na každém uzlu nejsou omezeny centrálním úzkým hrdlem na SAN.

Systémy sdílených disků (jako je Oracle skutečné aplikační clustery nebo Clusterovaný SQL Server instalace stále vyžadují sdílené SAN , který má omezenou šířku pásma pro streamování. Na VLDB to může vážně omezit výkon prohledávání tabulek, kterého je možné dosáhnout. Většina dotazů na datový sklad spouští prohledávání tabulek nebo rozsahů ve velkých blocích dat. Pokud dotaz zasáhne více než několik procent řádků, je často optimálním plánem dotazů prohledání jedné tabulky.

Více lokálních diskových polí s přímým připojením na uzlech poskytuje větší šířku pásma disku.

Nicméně vím o prodejně Oracle DW (hlavní evropské telco), která má datový sklad založený na Oracle, který načítá 600 GB za den, takže se nezdá, že by architektura sdílených disků ukládala nepřekonatelná omezení.

Mezi MS-SQL a Oracle existují určité rozdíly. IMHO Oracle má lepší podporu VLDB než SQL server z následujících důvodů:

  • Oracle má nativní podporu pro indexy bitmap , což jsou indexové struktury vhodné pro vysokorychlostní dotazy na datové sklady. V podstatě dělají CPU pro I/O kompromis, protože jsou zakódovány v délce běhu a využívají relativně málo místa. Na druhou stranu Microsoft tvrdí, že Index Intersection není znatelně pomalejší.

  • Oracle má lepší možnosti dělení tabulek než SQL Server. IIRC Rozdělení tabulky na oddíly v SQL Server 2005 lze provést pouze v jednom sloupci.

  • Oracle lze provozovat na poněkud větší hardware než SQL Server, i když SQL server lze spustit na některých docela s respektem velký systémy.

  • Oracle má vyspělejší podporu pro Materializovaná zobrazení a Přepsání dotazu k optimalizaci relačních dotazů. SQL2005 má určitou schopnost přepisování dotazů, ale je špatně zdokumentovaná a neviděl jsem ji použít v produkčním systému. Společnost Microsoft však navrhne, abyste používali Analytické služby , který ve skutečnosti nepodporuje konfigurace sdíleného nic.

Pokud nemáte skutečně biblické objemy dat a nevybíráte si mezi Oracle a architekturou sdíleného nic, jako je Teradata, pravděpodobně uvidíte malý praktický rozdíl mezi Oracle a SQL Server. Zejména od zavedení SQL2005 jsou funkce dělení na SQL Server považovány za dostatečně dobré a existují spousta z příkladů z víceterabajt systémy, které na něm byly úspěšně implementovány.



  1. One-to-Many SQL SELECT do jednoho řádku

  2. SQL:Dynamický pohled s názvy sloupců na základě hodnot sloupců ve zdrojové tabulce

  3. Náhodná chyba:#1045 Nelze se přihlásit k serveru MySQL

  4. Stránkování pomocí serveru Oracle a SQL a obecná metoda stránkování