Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

SQL Server e Oracle, qual é melhor em termos de escalabilidade?


Tanto o Oracle quanto o SQL Server são bancos de dados de disco compartilhado, portanto, são limitados pela largura de banda do disco para consultas que a tabela examina em grandes volumes de dados. Produtos como Teradata , Netezza ou DB/2 Parallel Edition são 'nada compartilhado' arquiteturas em que o banco de dados armazena partições horizontais nos nós individuais. Esse tipo de arquitetura oferece o melhor desempenho de consulta paralela, pois os discos locais em cada nó não são limitados por um gargalo central em uma SAN.

Sistemas de disco compartilhado (como Oracle Real Application Clusters ou SQL Server em cluster as instalações ainda exigem um SAN compartilhado , que restringiu a largura de banda para streaming. Em um VLDB, isso pode restringir seriamente o desempenho de varredura de tabela que é possível alcançar. A maioria das consultas de data warehouse executa varreduras de tabela ou intervalo em grandes blocos de dados. Se a consulta atingir mais do que alguns por cento das linhas, uma única verificação de tabela geralmente é o plano de consulta ideal.

Várias matrizes de disco de conexão direta local em nós fornecem mais largura de banda de disco.

Dito isto, estou ciente de uma loja Oracle DW (uma grande telco europeia) que possui um data warehouse baseado em oráculo que carrega 600 GB por dia, portanto, a arquitetura de disco compartilhado não parece impor limitações intransponíveis.

Entre MS-SQL e Oracle existem algumas diferenças. O IMHO Oracle tem melhor suporte a VLDB do que o SQL Server pelos seguintes motivos:

  • A Oracle tem suporte nativo para índices de bitmap , que são uma estrutura de índice adequada para consultas de data warehouse de alta velocidade. Eles essencialmente fazem uma troca de CPU para E/S, pois são codificados por comprimento de execução e usam relativamente pouco espaço. Por outro lado, a Microsoft alega que Interseção de índice não é sensivelmente mais lento.

  • O Oracle tem melhores recursos de particionamento de tabelas do que o SQL Server. IIRC O particionamento de tabelas no SQL Server 2005 só pode ser feito em uma única coluna.

  • O Oracle pode ser executado em um pouco maior hardware que o SQL Server, embora seja possível executar o SQL Server em alguns bastante respeitosamente grande sistemas.

  • A Oracle tem suporte mais maduro para Visualizações materializadas e Reescrita de consulta para otimizar consultas relacionais. O SQL2005 tem algum recurso de reescrita de consulta, mas está mal documentado e não o vi usado em um sistema de produção. No entanto, a Microsoft sugerirá que você use Serviços de análise , que na verdade oferece suporte a configurações de nada compartilhado.

A menos que você tenha volumes de dados verdadeiramente bíblicos e esteja escolhendo entre Oracle e uma arquitetura nada compartilhada, como Teradata, você provavelmente verá pouca diferença prática entre Oracle e SQL Server. Particularmente desde a introdução do SQL2005, os recursos de particionamento no SQL Server são vistos como bons o suficiente e existem muito de exemplos de multi-terabyte sistemas que foram implementados com sucesso nele.