Dicas para um DBA Iniciante – Simulando concorrência com o SQLQueryStress

Galera,

Em mais um post da nossa série de Dicas para um DBA Iniciante, quero indicar uma ferramenta extremamente útil para avaliar possíveis impactos de comandos T-SQL em seu ambiente de banco de dados.

Muitas vezes ao analisarmos uma determinada consulta afim de encontrar problemas de performance, utilizamos um ambiente de desenvolvimento ou então de homologação que não possuem a mesma concorrência de acesso aos bancos de dados e isso acaba dificultando uma análise de performance mais apurada.

Para auxiliar nestas avaliações utilizo uma ferramenta gratuita chamada SQLQueryStress, na qual podemos simular a execução de uma consulta T-SQL utilizando várias conexões e várias threads ao mesmo tempo, chegando bem próximo ao  existente no ambiente de produção.

Vamos imaginar um cenário no qual necessitamos avaliar o impacto da consulta abaixo:

USE AdventureWorks2012
GO
SELECT
 BusinessEntityID,
 FirstName,
 LastName
FROM Person.Person

Inicialmente precisamos configurar no SQLQueryStress qual a instância e qual o banco de dados essa consulta será executada, conforme ilustrado na Figura 1.

SQLQueryStress_1
Figura 1. Configurando a conexão

Após a configuração da conexão, executaremos a consulta apenas 1 vez para uma primeira análise.

Podemos perceber que o tempo para finalização é de apenas 802 ms, conforme ilustrado na Figura 2.

SQLQueryStress_2
Figura 2. Execução da consulta

Agora vamos simular a execução desta mesma consulta pensando em um ambiente de produção no qual teremos pelo menos 100 conexões simultâneas necessitando desta informação.

A Figura 3 ilustra que 100 execuções simultâneas levam um tempo bem maior que o teste anterior, chegando próximo à 7 segundos, ou seja, uma consulta que inicialmente parecia inofensiva em um teste unitário, poderá causar uma queda brusca de performance quando executada várias vezes ao mesmo tempo.

SQLQueryStress_3
Figura 3. Execução de 100 consultas simultâneas

É importante sempre lembrar que em um ambiente de desenvolvimento ou homologação, a quantidade de conexões simultâneas são muito menores do que no ambiente de produção e com isso uma análise equivocada ocasionará um grande impacto de performance em um ambiente de banco de dados SQL Server.

Caso tenham interesse em conhecer mais sobre a ferramenta e como utilizá-la, basta acessar o link abaixo:

SQLQueryStress – Documentação

Espero que tenham gostado e não deixe de inscrever-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço a todos e até a próxima semana.

5 ideias sobre “Dicas para um DBA Iniciante – Simulando concorrência com o SQLQueryStress

  1. João Carlos

    Muito bom esse Post Vitor, essas dicas são de muita importância para eu que estou iniciando na área.

    Parabéns !

    Resposta
    1. vitortff Autor do post

      Grande João,

      Fico imensamente contente por estar ajudando em seu desenvolvimento profissional.

      Sempre que precisar de alguma coisa é só me procurar.

      Grande abraço.

      Resposta
    1. vitortff Autor do post

      Grande Rodrigo.

      Obrigado pelo seu feedback.

      Fico contente que tenha gostado e caso necessite de mais alguma informação é só me procurar.

      Grande abraço.

      Resposta

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.