É possível dimensionar um banco de dados SQL Server?
Existem algumas soluções para clustering de failover e sempre em , mas existe uma solução para balanceamento de carga e particionamento horizontal no SQL Server?
Existem alguns no Azure , mas não em uma instância autônoma do SQL Server...
Você meio que tem um monte de perguntas aqui:
É possível escalar READS no Azure SQL DB? Sim.
Dependendo do serviço que você usa, como as réplicas secundárias ativas do banco de dados SQL do Azure , sua carga de trabalho de leitura pode ser dimensionada automaticamente em vários servidores sem grandes alterações no código do aplicativo. No entanto, você ainda precisa adicionar uma cadeia de conexão separada em seu aplicativo especificando ApplicationIntent=ReadOnly para que eles saibam que é seguro mover sua consulta de leitura para uma réplica legível.
É possível escalar WRITES no banco de dados SQL do Azure? Sim, se você alterar o código.
O documento ao qual você vinculou, Particionamento de Dados , é um conjunto de diretrizes de design que você pode usar ao codificar seu aplicativo. No entanto, essas são realmente alterações de código, não um recurso do Azure SQL DB que você apenas ativa da mesma maneira que ativa réplicas secundárias.
Cabe a você projetar uma camada de código para que, quando seu aplicativo precisar executar uma consulta, ele se conecte ao local apropriado.
Pense nisso como a World Wide Web: no Stack Overflow, as cargas de trabalho de gravação são separadas em StackOverflow.com, DBA.StackExchange.com, ServerFault.com e outros sites. No entanto, você, o usuário, precisa saber qual site possui os dados em que deseja gravar - você não pode postar uma resposta a essa pergunta em ServerFault.com. Essa lógica é incorporada ao seu cérebro - e a mesma lógica precisa ser incorporada ao seu aplicativo se você quiser dimensionar as gravações em vários servidores.
Houve um breve momento em que a Microsoft pensou que faria esse trabalho para você com o Azure SQL DB Federations , mas isso foi rapidamente preterido .
As mesmas coisas são possíveis com o SQL Server? Sim.
Redimensionar leituras é tão fácil quanto:
O dimensionamento de gravações não é tão fácil e requer alterações de código, assim como no banco de dados SQL do Azure.
Algum deles faz balanceamento de carga verdadeiro? Não.
Nem o Azure SQL DB nem os Grupos de Disponibilidade Always On do SQL Server equilibram verdadeiramente a carga em vários secundários. Você pode entrar em uma situação em que uma réplica está executando um punhado de consultas horríveis e o restante está ocioso. E nessa situação, você ainda pode acabar recebendo novas consultas atribuídas igualmente aos servidores sobrecarregados e sobrecarregados.
Fazer o balanceamento de carga real - mantendo os requisitos de trabalho semelhantes em várias réplicas - é deixado como exercício para o leitor.
Dado que as pessoas fizeram o scale out muito antes de se tornar automático - sim, você pode dimensioná-lo como quiser. Replicação entre 100 instâncias, distribuindo de alguma forma por disco ou por cpu ou qualquer carga - feito.