SQL Server – Como utilizar a ferramenta SQLQueryStress

SQL Server – Como utilizar a ferramenta SQLQueryStress
Avalie esse post

Olá pessoal,
Bom dia!

Neste post, vou apresentar e demonstrar a utilização da ferramenta open-source SQLQueryStress, do Adam Machanic (criador da sp_WhoIsActive), que serve para realizar testes de stress executando uma determinada query, permitindo que você realize uma série de testes na sua instância SQL.

A ferramenta permite que você defina quantas threads serão executadas simultaneamente, quantas execuções e qual o intervalo de tempo entre cada execução, permitindo realizar vários tipos de testes, das quais destaco:

  • Verificar o comportamento da instância com uma determinada quantidade de sessões em execução
  • Executar várias queries ao mesmo tempo para estressar a CPU, disco e memória do servidor e verificar o seu comportamento
  • Simulação de um ambiente crítico com várias transações por segundo durante os testes de sistemas e consultas SQL
  • Identificar quantas vezes uma SP é executada por dia, realizar uma otimização e simular qual seria o ganho de tempo no dia
  • Executar uma query ou SP várias vezes, com parâmetros aleatórios e analisar seu comportamento

Enfim, a lista de possibilidades é muito grande e o software te dá várias ferramentas para melhorar sua análise, como possibilidade de utilizar ou não, o Pool de conexões, limpar caches, limpar buffer, etc.

A utilização da ferramenta é bem simples, por isso não vou fazer muitas demonstrações. O intuito desse post é compartilhar essa ferramenta para quem ainda não a conhecia, de forma que possa melhorar suas análises sobre a performance das instâncias SQL Server que você demonstra ou fazer testes de performance em alguma query.

Após baixar o executável da ferramenta neste link, você verá a tela inicial do SQLQueryStress. Clique no botão “Database” para configurar a conexão com o banco de dados.

Não recomendo a utilização desse software em ambientes de produção, a não ser que seja em um horário de manutenção agendada e que você queira fazer testes de stress na instância.

Tela inicial do SQLQueryStress

Nesta tela, você poderá digitar o nome do servidor\instância de conexão, bem como dados de tipo de autenticação, usuário e senha.

Tela de configuração de conexão com o banco de dados

De volta à tela inicial, vamos definir a query que será executada, os parâmetros de execução e iniciar o processamento.

Parâmetros de execução:
Number of Iterations: É o número de vezes que a query será executada
Number of Threads: Número de sessões que serão executadas em paralelo (ao mesmo tempo)
Delay between queries (ms): Quantidade de millisegundos entre o fim de uma query e o início da próxima.

Vale ressaltar que o número de vezes que a query será executada é através da conta Number of Iterations x Number of Threads, ou seja, se você colocar 10 iterações com 5 threads, a sua query será executada 50 vezes.

Resultado da execução:

Resultado do WhoIsActive, demonstrando as conexões sendo executadas:

(Obs: Tive que colocar um WAITFOR DELAY na SP para que elas apareçam no WhoIsActive, uma vez que a SP de teste é muito simples e roda muito rápido)

Como utilizar o Parameter Substitution

Clique aqui para saber mais sobre o Parameter Substitution
Um recurso muito legal que vou mostrar é o Parameter Substitution, que permite executar queries e SP’s passando parâmetros baseado no retorno de uma query.

Neste exemplo, vou criar uma tabela e inserir vários valores aleatórios que serão utilizados como parâmetros para as chamadas da SP que vou testar no SQLQueryStress.

Criação da função para gerar números aleatórios:

Geração dos dados aleatórios para testes

Exemplo de tabela com dados aleatórios:

Uma vez que a tabela com os dados de teste já foi criada e populada, basta configurar no software a substituição dos parâmetros:

É isso aí, pessoal!
Espero que tenham gostado desse post e dessa excelente ferramenta para testar queries e o limite de processamento da sua instância SQL Server.
Um abraço e até a próxima.

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

Deixe um comentário

Seja o Primeiro a Comentar!

Deixe uma resposta

wpDiscuz