Loading…

Managed Instance (#17) – Tirando relatórios pesados da produção e executando em uma réplica com dados Online!

Fala Pessoal,

Segue mais um post da série sobre Managed Instance.

A ideia desse post é simular 1 loop fazendo insert e 3 loops fazendo consultas para monitorar o consumo de CPU do servidor.

Primeiramente vou rodar tudo em uma única instância. Depois vou balancear a carga e mandar as conexões de leitura para a instância Read Only do MI.

Utilizando tudo na mesma instância

Simulando um ambiente de produção, deixei um loop de insert executando em uma conexão:

E depois abri 3 outras conexões e deixei um loop executando a consulta abaixo para simular um movimento no ambiente:

Segue abaixo uma foto da Whoisactive com essas queries sem execução na minha instância de produção:

Usando essa query abaixo do Glenn Berry, podemos monitorar o consumo de CPU da minha instância:

Segue o resultado:

Veja que minha instância está utilizando 19% de CPU após a execução das consultas.

Mas Fabricio, no Managed Instance Business Critical não conseguimos fazer SELECT em uma réplica Read Only?

R: Sim. Vamos mudar um pouco nosso teste.

Balanceando a Carga da Produção

Agora vou manter o loop de insert na produção e abrir as 3 conexões na réplica Read Only.

Na produção deixei o loop de insert executando:

Repare que com a função DATABASEPROPERTYEX consigo provar que estou conectado na instância READ_WRITE.

Veja que só tenho o insert rodando nessa instaância.

As conexões que faziam leitura agora se conectam na réplica Read Only conform pode ser visto abaixo:

Da para ver claramente as 3 em execução na whoisactive.

Vamos ver se o processamento realmente foi balanceado com essa mudança.

Segue o consumo de CPU da produção:

Com a execução apenas do insert, o processamento do meu servidor de produção (READ_WRITE) agora baixou para 1%.

Rodando a mesma query no servidor Read Only:

A bomba das queries que elevam o consumo do servidor agora estão impactando a réplica READ_ONLY e não a produção READ_WRITE.

No popular seria: Deixa eu vender aqui em paz e vai fazer seus relatórios bombas na instância Read Only.

TOP DEMAIS NÉ!?

Tudo isso sem nenhum esforço do seu time de DBA para configurar e manter essa replicação de dados. Deixa o DBA gastar o tempo dele fazendo tuning de queries para melhorar a performance do sistema e deixar os clientes felizes!

Muito Bom Fabrício, mas a galera está curiosa para saber qual o resultado da consulta que utilizou no seu post.

Segue o resultado da busca na tabela importada da FIFA procurando “jogador bom” com o nome de Fabiano Amorim no time dele:

Resultado: ZERO linhas retornadas!  #EuJaSabia

É isso aí pessoal. Espero que essa informação seja útil para vocês.

Seguem os posts anteriores sobre Managed Instance:

 

Gostou dessa Dica?

Curta, comente, compartilhe…

Assine meu canal no Youtube , curta minha página no Facebook  ou siga nossa página no Instagram para receber Dicas de Leituras, Vídeos e Eventos sobre SQL Server.

Até o próximo post.

Abraços,

Fabrício Lima

Microsoft Data Platform MVP

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

One thought on “Managed Instance (#17) – Tirando relatórios pesados da produção e executando em uma réplica com dados Online!

Deixe uma resposta