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.

Anúncios
  1. João Carlos
    08/01/2015 às 6:40

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

    Parabéns !

    • 08/01/2015 às 10:07

      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.

  2. 08/01/2015 às 17:11

    Bom post

    • 08/01/2015 às 17:19

      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.

  3. 20/01/2015 às 14:51

    Republicou isso em Alex Souza.

  1. No trackbacks yet.

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s

%d blogueiros gostam disto: