Acelerando a replicação de instantâneo MSSQL para réplica SQLExpress

Acelerando a replicação de instantâneo MSSQL para réplica SQLExpress

Tenho um site remoto bem conectado para o qual estou entregando instantâneos duas vezes ao dia de determinadas tabelas. A replicação de instantâneo é o único método que posso usar com base nas limitações de esquema do aplicativo subjacente.

O instantâneo é publicado via caminho UNC e FTP e tem cerca de 6 MB, o que é bastante pequeno. Não estou 100% certo se FTP ou UNC estão sendo usados. Demora cerca de 5 minutos desde o momento em que o instantâneo é compactado no arquivo snapshot.cab até o momento em que o monitor de replicação mostra o primeiro dos scripts sendo aplicados, portanto, presumo que a lacuna seja o tempo de transferência. Estou pensando que é UNC/SMB, já que leva muito menos tempo para copiar tantos dados em nossa conexão de 3 MB via FTP.

Demora cerca de mais 25 minutos para carregar o instantâneo, o que parece muito tempo para uma quantidade modesta de dados. Muitas linhas (várias tabelas têm 100 mil linhas), mas a quantidade real de dados é muito pequena.

O assinante está executando o SQLExpress 2005 em um ProLiant de 2,8 GHz com 3 GB de RAM que, de outra forma, não estaria ocupado. Ainda não fiz um perfil extenso para ver se há contenção de disco ou o que mais pode estar acontecendo.

Estou me perguntando qual é o provável limitador de taxa aqui e se há uma maneira de acelerar isso. 30 minutos parece muito tempo para copiar e carregar 6 MB de dados compactados.

Responder1

Como você tem o SQL Express no lado remoto, suas opções são bastante limitadas, pois você só pode fazer uma assinatura push.

A forma como a replicação funciona é que os dados são transferidos por BCP para um arquivo binário. Quando o agente de replicação percebe que o instantâneo foi concluído, ele usa o BCP para carregar dados pela rede no assinante. O BCP pela rede não é exatamente o processo mais rápido de todos os tempos.

informação relacionada