Quais fatores objetivos indicam que é hora de implementar a replicação do SQL Server?

11

Estou tentando encontrar um equilíbrio entre o alto desempenho do nosso banco de dados e a facilidade de manutenção. Estamos pensando em usar a replicação para melhorar o desempenho, replicando nossos relatórios do SSRS em um banco de dados fisicamente separado do banco de dados transacional. No entanto, a ativação da replicação tem várias desvantagens do ponto de vista do desenvolvedor:

  • Torna as alterações de esquema mais difíceis
  • Isso interfere no nosso servidor de integração / construção automatizado
  • Parece dificultar a implementação do controle de origem SQL

Minha pergunta é : Quando você sabe que é hora de replicar à luz desses inconvenientes? Como você decide se a complexidade adicional justifica os ganhos?

Nós o usamos antes, portanto, configurá-lo não é um problema. Trata-se mais de tomar a decisão de habilitá-lo ou não. Estou procurando algumas métricas de desempenho de objetos que outros observaram com replicação.

É claro que a melhor coisa seria fazer alguns testes de carga simulados em nossos próprios servidores e descobrir por nós mesmos, mas espero que haja algumas diretrizes gerais por aí.

Jon Seigel
fonte
1
Como você decide se a complexidade adicional supera os ganhos? Só você pode responder a isso! Situação de cada um é diferente ....
Mas como sei o que esperar quanto a ganhos até que eu já o configurei? Eu acho que essa é a questão. Existem métricas de desempenho por aí?

Respostas:

2

A replicação deve ser considerada durante a fase de design do aplicativo. Se você possui uma força de trabalho / base de usuários distribuída geograficamente, ter bancos de dados regionais e bancos de dados centrais pode fazer sentido. Os bancos de dados desconectados nos laptops podem "sincronizar" quando finalmente se reconectam à rede (pense na equipe de vendas em trânsito).

Quanto aos propósitos de relatório, a replicação NÃO é a resposta. A maioria dos problemas de desempenho em um ambiente de relatório decorre do fato de os relatórios estarem sendo gravados em um sistema configurado para OLTP (processamento de transações online).

A replicação para fins de relatório é simplesmente mover seus dados OLTP para outro servidor, mas mantendo a mesma estrutura não amigável para os relatórios. Em essência, você está jogando mais hardware no problema e aumentando seus custos de manutenção, mas com ganhos marginais.

O que você deve observar é como obter os dados específicos de que seus relatórios precisam e transformá-los em um formato mais útil. Crie um feed que obtenha novas transações do banco de dados de produção e o armazene em um banco de dados de relatórios, de preferência em um servidor separado. Toda vez que o feed é executado, ele deve pegar todos os dados mais recentes que na última vez em que foi executado, transformar esses dados e armazená-los. Os relatórios que você está executando no momento fornecerão uma boa idéia dos tipos de transformações necessárias.

Seguindo essa abordagem, você obterá enormes benefícios de desempenho.

datagod
fonte
1

Pelo que vale, achamos que a replicação é útil em uma situação semelhante, porque os redatores de relatórios podem "possuir" os índices no banco de dados replicado. Isso nos permitiu melhorar o desempenho da consulta adicionando índices que os desenvolvedores de aplicativos nunca teriam aprovado na produção devido ao seu impacto negativo em INSERTS e UPDATES.

Talvez parte do seu caso de uso seja copiar algumas tabelas transacionais, alterar alguma indexação e ver se vale a pena?

Espero que isto ajude!

JHFB
fonte