Olá,

Em 7 de julho de 2010 23:00, Carlos Augusto Machado
<[email protected]>escreveu:

>  Caros,
>
> 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?

>
> 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?

>
> 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.

>
> 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.


> 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.

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?

>
> 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.



> 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.

>
> 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/

> --
> Att,
> Carlos Augusto Machado
> Email: [email protected]
> MSN: [email protected]
> Fone: (49) 88532089
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

[]s
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a