TPCB
Com o banco de dados populado, podemos começar a explorar a performance das consultas.
Como primeira opção, iremos utilizar o TPC-B (Transaction Processing Performance Council - Benchmark B), um benchmark clássico para medir a performance de sistemas de banco de dados transacionais.
O Que é um Benchmark?
Um benchmark é uma ferramenta ou conjunto de testes padronizados utilizados para avaliar o desempenho de sistemas, componentes ou processos. No contexto de bancos de dados, benchmarks são usados para medir a eficiência e a capacidade de resposta do sistema sob diferentes cargas de trabalho.
Eles fornecem métricas quantitativas que ajudam a comparar o desempenho entre diferentes sistemas de gerenciamento de banco de dados (SGBDs) ou configurações específicas, permitindo que desenvolvedores e administradores tomem decisões informadas sobre qual tecnologia ou configuração utilizar.
A TPC é uma organização que define padrões para medir o desempenho de sistemas de processamento de transações. O TPC-B simula um ambiente de banco de dados transacional, focando em operações típicas como inserções, atualizações e consultas simples.
Configurar o Banco de Dados
Para executar o TPC-B, precisamos configurar o banco de dados.
Vamos acessar o servidor PostgreSQL que criamos:
Exercício
Atenção!
Os comandos a seguir devem ser executados dentro do container do PostgreSQL.
Exercício
Exercício
Rodar teste TPC-B
Para executar o teste, utilizaremos a ferramenta pgbench
, que já vem instalada no container do PostgreSQL.
O pgbench
é uma ferramenta de benchmarking para o PostgreSQL que simula cargas de trabalho transacionais, permitindo medir a performance do banco de dados sob diferentes condições.
Exercício
Answer
O resultado do comando pgbench
fornecerá várias métricas de desempenho, incluindo:
- Número de transações por segundo (tps): Indica quantas transações o banco de dados conseguiu processar por segundo durante o teste.
- Número de transações com falha: Indica quantas transações falharam durante o teste.
- Latência: Mede o tempo de resposta do banco de dados para cada transação.
- Número total de transações processadas: Indica o total de transações processadas durante o período do teste.
Dica
Enquanto executa os testes, você pode abrir outra janela de terminal e monitorar o uso de recursos do sistema com o comando htop
(linux), top
(macOS) ou o Gerenciador de Tarefas (Windows).
Exercício
Exercício
Exercício
pgbench
com SQL customizado
Vamos utilizar o pgbench
para rodar um script SQL customizado e aproveitar para testar nosso banco sfbikeshare
.
Exercício
Exercício
Exercício
Answer
Ao comparar os resultados dos testes de SELECT
nas tabelas station
, trip
e status
, você deve observar diferenças significativas nas métricas de desempenho, como o número de transações por segundo (tps) e latência.
De forma geral (não apenas neste caso), essas diferenças podem ser atribuídas a vários fatores, incluindo o tamanho das tabelas, a complexidade das consultas SQL, a presença ou ausência de índices, e a quantidade de dados que cada consulta precisa processar.
Exercício
Exercício