Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Banco de dados que pode lidar com mais de 500 milhões de linhas


MSSQL pode lidar com muitas linhas muito bem. O tempo de consulta é completamente dependente de muito mais fatores do que apenas uma simples contagem de linhas.

Por exemplo, vai depender de:
  1. quantas associações essas consultas fazem
  2. como seus índices estão configurados
  3. quanta memória RAM está na máquina
  4. velocidade e número de processadores
  5. tipo e velocidade do eixo dos discos rígidos
  6. tamanho da linha/quantidade de dados retornados na consulta
  7. Velocidade/latência da interface de rede

É muito fácil ter uma tabela pequena (menos de 10.000 linhas) que levaria alguns minutos para executar uma consulta. Por exemplo, usando muitas junções, funções na cláusula where e zero índices em um processador Atom com 512 MB de RAM total.;)

É preciso um pouco mais de trabalho para garantir que todos os seus índices e relacionamentos de chave estrangeira sejam bons, que suas consultas sejam otimizadas para eliminar chamadas de função desnecessárias e retornar apenas os dados que você realmente precisa. Além disso, você precisará de hardware rápido.

Tudo se resume a quanto dinheiro você quer gastar, a qualidade da equipe de desenvolvimento e o tamanho das linhas de dados com as quais você está lidando.

ATUALIZAÇÃO Atualizando devido a alterações na pergunta.

A quantidade de informação aqui ainda não é suficiente para dar uma resposta do mundo real. Você terá apenas que testá-lo e ajustar o design e o hardware do banco de dados conforme necessário.

Por exemplo, eu poderia facilmente ter 1 bilhão de linhas em uma tabela em uma máquina com essas especificações e executar uma consulta "select top(1) id from tableA (nolock)" e obter uma resposta em milissegundos. Da mesma forma, você pode executar uma consulta "select * from tablea" e demorar um pouco porque, embora a consulta seja executada rapidamente, a transferência de todos esses dados pela rede demora um pouco.

O ponto é, você tem que testar. O que significa configurar o servidor, criar algumas de suas tabelas e preenchê-las. Em seguida, você precisa passar pelo ajuste de desempenho para acertar suas consultas e índices. Como parte do ajuste de desempenho, você descobrirá não apenas como as consultas precisam ser reestruturadas, mas também exatamente quais partes da máquina podem precisar ser substituídas (ou seja:disco, mais ram, cpu, etc) com base no bloqueio e tipos de espera.

Eu recomendo que você contrate (ou contrate) um ou dois DBAs para fazer isso para você.