Multithreadin em banco de dados

Olá pessoal,

Preciso fazer fárias chamadas em um banco de dados ao mesmo tempo, e estou sem saber por onde começar…

Tipo assim, quero executar a consulta: select * from clientes where cidade = ‘campinas’

Só que quero executar essa consulta N vezes ao mesmo tempo…

Alguém pode me dar uma idéia de como começar isso?
Obrigado!

O título do seu post é bem subjetivo, e o problema apresentado, é vago :slight_smile:

Então deixa eu ver se entendi… você quer mesmo executar várias consultas ao banco, concorrentemente? É só criar Threads que executem a consulta.

Ou você quer um mecanismo de controle de acesso concorrente? Aí a coisa muda de figura, e o assunto é um pouco complexo, dependente de uma séria de coisas.

Quero acessar várias consultas ao banco concorrentemente. Mas quero executar uma query só várias vezes, e quero ter o tempo de resposta desse acesso múltiplo! tipo assim, 10 consultas simultâneas ao banco de dados com uma mesma query! E quero o tempo que ele gastou pra fazer isso!

Só isso… Mas não sei como implementar isso… Já desenvolvo em java a algum tempo, mas nunca precisei de trabalhar com threads. agora surgiu essa necessidade…

Se puder me ajudar ficarei grato!
Obrigado!


Thread t = new Thread() {
  public void run() {
    while ( true ) {
    // Executar consulta   
    }
  }
};
t.start();

Fiz uma classe anônima só pra mostrar, mas vc vai querer fazer sua própria classe. Ao rodar, o Thread vai executar várias consultas ao banco, uma atrás da outra. Crie mais de um objeto desta classe Thread, e inicie todos - eles estarão consultando o banco concorrentemente.

Pra sacar o tempo que se passou, use System.currentTimeMillis() antes e depois do método que inicia os seus threads… Fazendo tempoFim - tempoInicio, vc tem o tempo gasto pelo código.

Mais ou menos por aí.
Rodrigo

Olá

Se o que você quer é fazer teste de stress, experimente o JMeter.

Outras opções seriam o OpenSTA e o The Grinder.

[]s
Luca