Array
(
)

Conexões entre Matriz e Filiais num SQL Server 2005

Mauro Moraes
   - 13 set 2010

Tenho um ERP na empresa. Essa empresa possui 55 filiais, várias em cidades diferentes, funcionando conectados ao Banco da produção, um SQL Server 2005 Enterprise, sendo que existem diversos caixas PDVs conectados com ele diretamente, enviando em tempo real cada venda realizada através de um link. São aproximadamente 160 conexões simultâneas em horários de Pico que vão das 10 as 14h e das 16 as 18:30h, em dias normais. Cheguei a pegar picos de 98% no processador do servidor do banco, um IBM 16GB, com 8 processadores, e um storange de 1TB, com 200GB mais ou menos livre no disco. Más o que está pegando aqui é que não tenho encontrado outra possibilidade de estruturar essas conexões direta dos PDVs com o banco, pois acho que esse acumulo de conexões simultâneas está atrapalhando o desempenho da máquina do servidor. Não tem ocorrido bloqueios praticamente, vez ou outra apenas, e as conexões não são demoradas(Não tive tempo de monitorar isso direito, más o pessoal que trabalha alí, disse que não existem gargalos relevantes). Na vedade ainda não tive tempo de ver como estas consultas do ERP estão montadas, más creio que de alguma forma elas e os índices, estão onerando a performance do banco para que o mesmo chegue aos picos de processamento que tem apresentados. Não pude ver a rede ainda e o comportamento da mesma. Eu vi que no servidor, dentro do performance, quase não aparecem os contadores do SQL Server, você saberia dizer porque não aparecem? Seria algum problema de instalação? Teria que reinstalar o banco pra que os contadores aparececem? Essa arquitetura de rede e conexão do servidor é a ideal para a empresa? Existe outra possibilidade de enviar esses dados dos PDVs pro banco de dados sem acumular tantas conexões ao mesmo tempo? Qual seria a arquitetura ideal de banco ou sistema ideal para este caso?

Tiago Melo
   - 13 set 2010

acredito que arquitetura ideal a nível de banco para esses casos seja, um banco local nas pontas e um data center, recebendo as replicações

Mauro Moraes
   - 13 set 2010


Citação:
acredito que arquitetura ideal a nível de banco para esses casos seja, um banco local nas pontas e um data center, recebendo as replicações


Olá Tiago.

Existe um datacenter com o Banco da Produção, na Matriz e em cada filial, também existe um banco SQL Server que recebe diariamente, a noite, apenas atualizações de preços e produtos, do banco mestre. O que ocorre é que no momento das vendas os PDVs conectam diretamente com o Banco da Produção, e em alguns momentos acumulando algumas transações.

Estou pensando em criar grupos de filiais para a distribuição dos acessos (chamadas ao banco) em momentos pré-definidos, de forma que fique melhor distribuidos. Assim não haveria tanta concorrência e de tempo em tempo cada grupo conectaria, sem concorrer com outro grupo. A dificuldade aí é a direção da empresa permitir que isso ocorra desta forma ja que estão acostumados comos dados em tempo real, atualmente. Creio que isso só não seria possível caso exixtisse alguma imposição devido alguma funcionálidade, tipo, o cadastro de cliente da filial deve ser feito em tempo real, más mesmo assim creio que poderia se abrir uma excessão a regra e enviar uma sincronização das informações, quando fosse realmente necessário. O que acha?

Um abraço.