Oracle Vs SQL Server para lidar com cerca de 6 a 7 terabytes de dados

2

Estou procurando alguns pontos válidos para escolher entre o Oracle Vs SQL Server para lidar com cerca de 5-6 terabytes de dados. Esses dados serão acumulados ao longo de um período de 8 meses. Qualquer dado com mais de 8 meses é removido do banco de dados.

Estou considerando o Oracle 11G Standard Edition e o SQL Server 2008 Standard Edition.

Não estou à procura de facilidade de desenvolvimento, estou apenas procurando em termos de lidar com os enormes dados e ainda assim ser capaz de fornecer um bom desempenho. Além do desempenho, se houver algum parâmetro que faça alguma diferença, por favor, destaque.

Eu sei que há muita diferença, mas isso não é um fator se a diferença de desempenho for muito.

Espero receber respostas não tendenciosas e nenhuma guerra religiosa.

    
por Bhushan Bhangale 26.08.2009 / 19:22

7 respostas

4

Você não vai gostar desta resposta, mas também não. Oracle e MS SQL Server são praticamente iguais em termos de manipulação de dados em larga escala (o SQL Server pode ter uma vantagem na facilidade de uso, Oracle no utilitário) e quando realmente se trata dos dados brutos, o PostgreSQL pode realmente eliminá-los por uma margem muito pequena quando otimizado.

Mas se você realmente quer um banco de dados "grande", do tipo que provou funcionar bem quando está fazendo uso legítimo de colunas de ID de 64 bits e TBs de dados, então é o (IBM) DB2.

(Até onde vão as guerras religiosas, sou um cara do SQL Server, mas até eu sei quais são seus limites)

    
por 26.08.2009 / 19:30
3

Eu acho que vai realmente depender do que seus desenvolvedores de aplicativos e engenheiros de operações podem suportar; Eu imagino que você não manterá esse conjunto de dados em um único servidor, para redundância e desempenho.

Se você está escrevendo 6Tb em 8 meses, isso não é uma grande taxa de inserção, então a rotatividade de dados não será um problema para qualquer hardware decente.

A maior parte do desempenho resultará do design correto, que dependerá, em certa medida, dos recursos do produto específico usado.

Sem um design correto para ambos, comparando o aplicativo totalmente prototipado com os volumes de produção de dados, você não conseguirá compará-los. Eu acho que isso vai ser ineficaz em termos de custo (esforço de desenvolvimento para construir dois protótipos e testá-los em carga de dados completa em hardware de nível de produção).

Eu imagino que ou faria o trabalho muito bem, assim como qualquer outra coisa que você gostaria de nomear. Tudo vai ser sobre design de aplicativo correto, usando os recursos específicos do banco de dados corretamente.

    
por 26.08.2009 / 22:12
2

Depende completamente do que esses dados são, como são armazenados e o que você está fazendo com os dados

Assumindo que é uma única tabela, o Oracle certamente tem o 'chops' para fazer isso, mas você vai querer a edição enterprise com a opção de particionamento. Com isso, você pode particionar seus dados em meses, semanas, dias ou horas, o que for necessário. É, então, uma tarefa fácil manter sua janela rolante de 8 meses (supondo que seja uma janela rolante, e não apenas isso em 8 meses, a coisa toda será amarrada).

Com qualquer solução, você vai querer ver como você vai fazer essa janela rolante, alguns bancos de dados não são muito gentis com a exclusão de uma grande porcentagem de linhas.

Considere também que você provavelmente desejará alguma solução que possa fazer backup desses dados e recuperar-se de falhas em um período de tempo razoável.

    
por 27.08.2009 / 11:29
1

Eu também estou pensando para esse banco de dados de tamanho que você pode precisar de recursos na edição Enterprise do SQL Server.

link

O Enterprise tende a ter os recursos de escalabilidade. Tenho certeza de que isso também pode ser verdade para o Oracle.

    
por 26.08.2009 / 20:24
1

Existem muitos fatores possíveis que influenciam a resposta e, sem mais informações, é difícil dar uma resposta definitiva. Exemplos desses fatores são: qual é a origem dos dados e com que velocidade eles precisam ser registrados, com que frequência precisam ser consultados, como é fácil segmentar etc.

Em geral, o Oracle tem a reputação de poder lidar melhor com cargas maiores e pode ser executado em um hardware mais potente que o SQL Server.

No entanto, acho que para grandes volumes, como você está descrevendo, seria sensato considerar outras opções, a menos que sua organização determine o uso desses dois produtos.

Provavelmente, é melhor você olhar para um produto de banco de dados "exótico" projetado especificamente para lidar com esse tipo de volume, como Vertica ou mesmo considerando produtos não relacionais projetados para volumes volumosos usados pelos provedores de serviços em nuvem, como Amazon Elastic. Armazenamento de dados da Mapreduce e do Google App Engine. Esses produtos estão ganhando força em indústrias que exigem grandes volumes de dados, como provedores de telecomunicações e a indústria de serviços financeiros e de telemática.

    
por 26.08.2009 / 20:47
0

Você não mencionou se estará usando este banco de dados para o processamento de transações on-line, ou se é para mais data warehousing, business intelligence. Definitivamente, existem algumas opções para ambos. O Teradata vem à mente por lidar com quantidades muito grandes de dados para BI, por exemplo.

    
por 28.08.2009 / 16:13
0

Eu não posso falar de "5-6 TB de dados", mas atualmente tenho 1700 usuários fat-client em tempo integral (Application built in .NET) contra um banco de dados de 1,5 TB usando o SQL de 64 bits Itanium.

Ele funciona bem. Eu acho que a questão do escalonamento não é tanto o tamanho do DB, quanto o número de usuários e transações por segundo.

O Oracle pode fazer clusters para expandir a capacidade até transações / segundo (em certas circunstâncias), mas eu não necessariamente preferiria um deles em relação ao tamanho bruto do banco de dados.

    
por 28.08.2009 / 19:34