Um Software para Benchmark

Veja um software para Benchmark.

Um Software para Benchmark

 

por Miguel Fornari

 

Como professor de bancos de dados, sempre gostei que meus alunos tenham alguma experiência com avaliação de SGBD. Que possam perceber que alterar certos parâmetros, realmente influenciam, que inclui rum índice adequado, pode reduzir o tempo de resposta a 25% do original. Mas, para que ninguém ficasse inventando testes, o legal seria utilizar algo pronto, como os benchmarks da TPC.

 

TPC é a sigla para Transaction Processing Performance Council. Todo material esta disponível em www.tpc.org. O TPC possui diferentes benchmarks, dependendo do seu objetivo: transações, OLTP, Data Mining, entre outros. Os mais interessantes são os TPC-C, para OLTP e o TPC-H, para consultas complexas envolvendo sistemas de suporte à decisão. Os resultados atualizados estão disponíveis já na página de capa do site, vale a pena dar uma olhada. Por exemplo, para o TPC-H, em bases pequenas, Microsoft SQL Server tem vantagem óbvia, em diferentes hardwares. Mas quando as consultas ficam grandes, Oracle vira o jogo. Mas no maior tamanho relatado, resultados de 10Terabytes, o IBM DB2 ganhou.

 

Mas fechando os parênteses, a utilização dos benchmarks do TPC era complicada, por falta de ferramentas adequadas. O que havia eram scripts, escritos por terceiros, que rodavam adequadamente em uma certa versão. Para portar para o seu sistema, tinha que mexer em código alheio, o que nem sempre é fácil, principalmente se não há documentação.

 

Felizmente, o jogo mudou. Fiz testes com um software gratuito, chamado BenchMarkSQL, disponível em http://sourceforge.net/projects/benchmarksql/. Baixar foi moleza. Salvo o arquivo, basta descompactar. Os programas a serem executados estão na pasta /run. São todos arquivos .bat ou .sh, que você escolhe de acordo com o sistema operacional.

 

Em casa tenho Windows XP e só precisei alterar o início do arquivo, pois a JVM já esta PATH do meu computador. Ou seja, só simplifiquei as coisas. Por exemplo, o arquivo loadData.bat ficou assim:

 

java -cp ..\lib\edb-jdbc14-8_0_3_14.jar;..\lib\ojdbc14-10.2.jar;..\lib\postgresql-8.0.309.jdbc3.jar;..\dist\BenchmarkSQL-2.3.jar -Dprop=%1 LoadData %2 %3 %4 %5

 

Bem, para organizar os SGBD, no Postgres criei uma base de dados nova No Oracle XE, criei um usuário novo. No mesmo diretório /run, há dois arquivo .properties, uma para psotgres, outro para Oracle. Em cada um deles, é necessário editar usuário/senha e, se você não estiver no servidor, indicar a conexão adequada. Nada assustador! Para mim, o oracle.properties ficou assim:

 

driver=oracle.jdbc.driver.OracleDriver

conn=jdbc:oracle:thin:@localhost:1521:XE

user=tpc      

password=tpc

 

Agora que revelei a senha para todos, vamos a execução. O primeiro passo é criar as tabelas, de acordo com o modelo TPC. Para tanto, basta o comando:

 

runSQL oracle.properties sqlTableCreates

ou

runSQL postgres.properties sqlTableCreates

dependendo do SGBD em uso.

Após, é necessário popular as tabelas. A figura abaixo, mostra as tabelas criadas e o número de tuplas em cada uma. A base é tabela Warehouse. Se ela tiver uma tupla, a tabela district terá 10, a tabela Customer 30.000, e assim por diante. A maior tabela é Order-Line, com 300.000 tuplas. Se a tabela Warehouse tiver 5 tuplas, todos os números são multiplicados por cinco. 

 

Tabelas e cardinalidades do esquema TPC-C.

Para popular as tabelas, o comando é

loadData oracle.properties numwarehouses = 1

ou

loadData postgres.properties numwarehouses = 1

No Oracle XE, configuração default, levou pouco mais de 2 minutos. O Postgres foi um pouquinho mais longo, 3 minutos. Mas nada de assustar. A terceira etapa é criar os índices, com o comando

runSQL oracle.properties sqlIndexCreates

ou

runSQL postgres.properties sqlIndexCreates

 

Criado os índices, é possível rodar as consultas que desejar, ou aquelas que o professor recomendou, e avaliar o seu software/hardware e suas habilidades para reduzir o tempo de resposta. Para completar, preciso dizer que o software e todas as dicas iniciais foram dados por um aluno meu na Faculdade de Tecnologia SENAC, Douglas de Oliveira Ribeiro. No próximo artigo falo de outro software, que permite executar consultas concorrentes e simular um ambiente real mais adequadamente, aguardem.

Artigos relacionados