Dimensionamento do SQL Server 2008 R2

2

Eu estou olhando para as possibilidades de como escalar o sql server 2008R2. simplesmente escalar não será o suficiente.

"replicação p2p" e "visualizações particionadas distribuídas" parecem interessantes, mas ambas exigem (múltiplas ?!) licenças empresariais que são muito caras, e ainda assim não são soluções perfeitas.

Uma ideia muito simples foi:

Read from Random Server - Write to all Servers

Muito bem envolvida em uma transação para que ela possa ser revertida se não for bem-sucedida em todos os servidores. Estou tendo medo de alguns problemas sérios de bloqueio se algo der errado em um servidor ou estiver aguardando devido a algum outro bloqueio em um servidor.

Uma solução muito semelhante seria:

Read from Random Server - Write to Server A (which replicates automaticly to all others)

Isso seria mais caro porque a licença padrão é necessária e a primeira poderia ser feita com expresso, mas seria melhor em questões de desempenho? Quão rápido são as replicações automatizadas? Será que tudo isso faz sentido ou existe uma maneira melhor e mais agradável?

    
por Flo 24.10.2011 / 15:01

3 respostas

1

Configure a replicação de mesclagem do seu servidor centralizado para cada uma dessas instâncias do Express; O Express não pode servir como editor, mas pode ser um satélite e isso inclui atualizações de mesclagem.

    
por 24.10.2011 / 16:03
1

Com base nas respostas que o OP forneceu na seção de comentários acima, isso não soa como uma solução de scale-out. Eu acho que o seu tempo seria melhor gasto olhando para o seguinte:

1.) Design de banco de dados e desempenho de consulta - > Analise a carga de trabalho que está sendo executada no SQL nesta instância e assegure-se de que esteja executando conforme o esperado. Procure consultas que demorem mais tempo do que o esperado, observe o design subjacente das tabelas e os procedimentos armazenados / código SQL envolvidos.

2.) Veja quais recursos você está dirigindo no servidor. Você está maximizando as limitações do SQL Express? Em caso afirmativo, consideraria a execução de alguns cenários de teste e a análise da carga de trabalho para ver se a migração para um servidor de especificação superior e talvez a edição padrão ou corporativa e o aumento na alocação de recursos ajudariam. Você está implantando em caixas baseadas em 64 bits? Quanta memória? Faça análise de gargalo para identificar quais afunilamentos estão atrasando você.

3.) Verifique se a manutenção do banco de dados está sendo feita (reconstruções de índice, atualizações de estatísticas e manutenção de backup adequada - geralmente descubro instalações do SQL Server Express fornecidas pelo fornecedor sem precisar fazer backup, sem precisar fazer manutenção - link para um script para ajudar a automatizar e agendar algumas dessas tarefas)

4.) Você está hospedando seu aplicativo e o mecanismo de banco de dados do SQL Server no mesmo servidor? Pode ser hora de pensar em dividir isso. Os aplicativos e o SQL Server geralmente têm prioridades conflitantes para os recursos do sistema e geralmente não se complementam bem na mesma caixa. Teste e veja. Veja o perfmon para entender o impacto.

Se, depois de fazer todas essas alterações, você ainda tiver problemas de desempenho que talvez considere a abordagem de dimensionamento, acho que essas etapas são mais básicas e menos onerosas para você e seus clientes a longo prazo.

    
por 24.10.2011 / 21:10
0

Parece-me que você precisa fazer algum ajuste de desempenho do SQL. Se o banco de dados for pequeno o suficiente para rodar no SQL Express, então as probabilidades são de que você não precisa configurar alguma configuração em grande escala. Você provavelmente só precisa começar com o ajuste de índice para corrigir suas consultas com desempenho insatisfatório e configurar alguns trabalhos de manutenção de índice.

    
por 24.10.2011 / 21:36