Caros,

Continuando o assunto para que outros também contribuam...

 >>Estou fazendo meu TCC sobre melhoria de performance em BD implementados
 >>sobre o PostgreSQL.
> Muito legal :)
 >>O trabalho tem duas seções específicas, as quais estou começando a
 >>desenvolver exemplos práticos:
 >>- Otimização de índices
 >>- Otimização de consultas
> Primeira dúvida. O que você chama de otimização de índices? Criação de um
> índice para ver se melhora a performance?
Quase isso, a idéia é criar novos índices para melhorar a performance, 
porem, baseado no monitoramento do banco de dados.
Para tanto, preciso entender o que monitorar no banco para identificar 
que indices criar. Talvez o pg_founie citado na resposta anterior possa 
ajudar.

 >>Em ambos os casos, vou precisar monitorar um BD para apresentar os
 >>problemas antes de otimizar, as soluções dadas e como ficou o desempenho
 >>após a solução.

> Você tem um banco de dados para isso?
Montamos um banco de dados baseado no estudo de caso de uma vídeo 
locadora, porem achamos que este banco "não vai apresentar problemas".
Gostaríamos de ter um banco de uma aplicação real, mas não conseguimos 
nenhum até o momento.

 >>Para isso, venho até a lista para pedir apoio e dicas.
 >>Meu ambiente de trabalho é um notebook com Windows Seven, PostgreSQL 
8.4,
 >>3GB RAM.
 >>Também posso simular ambientes com máquina virtual rodando Windows XP ou
 >>Linux.

> Isso não seria problema.
Legal...

 >>Quanto ao monitoramento, pensei em usar uma ferramenta própria para essa
 >>atividade.

> Que tipo de ferramenta?
>
> Você já pensou em utilizar as views de sistema?
>
> - pg_stat_activity
> - pg_stat_user_tables
> - pg_stat_user_indexes
>
> Além disso tem o pg_fouine [1] onde você pode gerar as consultas 
> utilizadas
> pelo sistema.

Obrigado por essa indicação, comecei a ver essas views. Alguem tem mais 
material demonstrando o uso delas?

Como não terei a aplicação, apenas o banco de testes, terei de realizar 
consultas arbitrarias. Correto? Alguma dica para gerar essas consultas?

 >>Estudei o BenchmarkSQL, porém ele analisa a configuração do ambiente e
 >>hardware, usando um esquema de BD próprio para seu tipo de teste 
(criando
 >>tabelas próprias e definindo pesos para consultas).

> Você pode usar o pgtune [2] para auxiliar e ajudar na configuração dos
> parâmetros de configuração.
O pg_fouine e o pgtune são somente para ambientes linux? ou rodam também 
em windows?

 >>No entanto, se eu precisar analisar o BD de uma aplicação qualquer, 
pelo que
 >>entendi, o benchmarkSQL não vai ser tão útil.
 >>Então pergunto, há alguma ferramenta que faça o monitoramento de um 
BD já
 >>existente? (PS. Preferencialmente livre e que rode em Windows).

> Como assim ferramenta de um BD já existente?
Aqui a ideia é usar uma ferramenta para monitorar o banco de dados de um 
sistema já existente (erp, automação comercial, etc.).
Pelas respostas anteriores o pg_fouine pode ser essa ferramenta, 
monitorando as consultas do sistema.

 >>Uma alternativa que verifiquei é o uso do comando EXPLAIN. Esse 
comando se
 >>aplica mais para a otimização de consultas e, nesse caso, eu preciso 
saber
 >>antecipadamente quais as consultas que deverão ser analisadas.
> O comando EXPLAIN mostra o plano de execução de cada consulta, porém para
> ele funcionar bem é necessário que as estatísticas do banco estejam
> atualizadas, vide comando ANALYZE do PostgreSQL.
Ok.

 >>A dúvida é como descobrir quais são as consultas que precisam ser 
analisada
 >>em um BD qualquer.

> Isso depende muito. Aconselho em primeiro lugar você aplicar o pg_fouine
> para ler as consultas geradas pela aplicação, a partir dai você tem que
> trabalhar nas consultas que podem trazer um ganho maior para um contexto
> global.
Ok. Neste caso as consultas que podem trazer um ganho maior 
provavelmente são as que consomem mais tempo de processamento.

 >>Por fim, alguem sabe indicar onde poderia encontrar BDs PostgreSQL para
 >>teste, sem precisar criar um ou mais específicos para o trabalho?

> Isso é muito complicado, dificilmente você vai achar um banco pronto de
> testes para você aplicar testes de desempenho, eu iria sugerir você 
> montar
> um ambiente para isso, e popular com bastantes dados as tabelas para 
> ai sim
> pode trabalhar esta questão.
>
> Um bom ponto de início pode ser o pagila [3].
>
> [1] http://pgfouine.projects.postgresql.org/
> [2] http://pgfoundry.org/projects/pgtune/
> [3] http://pgfoundry.org/projects/dbsamples/
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a