Giraya,

From: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
Subject: [pgbr-geral] I/O no Postgresql

> - Com a base com índices a entrada e saida (I/O) é maior devido ao SGBD
> conseguir processar mais dados, correto?

_Coincidentemente_ sim.
_U_m_ dos motivos para ter mais acessos a disco
certamente foi o fato de fazer mais transações por segundo, mas há casos
em que você tem mais transações por segundo quando faz menos acessos
a disco. Tudo depende de que tipo de transações você está fazendo, quão
complexas são suas consultas e quão bem escolhidos são seus índices.


> - Com a base de dados sem índices, a I/O é muito mais baixa, mas porque?

Provavelmente porque o disco está entediado esperando o servidor terminar os
malditos NESTED LOOPs e HASH JOINs em memória que ele deve ser obrigado
a fazer por não ter índices.


> Será que é porque o SGBD joga todos os dados para a memoria RAM, assim não
> faz tanta leitura e escrita?

Talvez.
O mais provável é que o gargalo seja a CPU. Sem índices, fica muito mais 
difícil
fazer JOINs entre as tabelas, e com tabelas grandes inteiras na memória o 
servidor
vai achar vantajoso fazer intermináveis nested loops ou hash joins. O disco 
quase
não é usado porque a tabela inteira deve estar na memória, porém a CPU deve
estar sendo completamente desperdiçada. Provavelmente o desempenho
empataria se você pusesse uns *15* processadores no servidor sem índices,
e neste caso os acessos a disco no servidor sem índices provavelmente
aumentariam, apesar de ser hilário ver alguém levando adiante uma idéia 
dessas.

Não vejo motivo para fazer mais testes, os resultados são evidentes. Usar 
índices
neste caso deixou o servidor quinze vezes mais rápido, o que apenas confirma 
as
boas práticas consagradas em toda a literatura sobre o assunto.

Não sou o primeiro a falar, mas não custa ressaltar: comparar o plano das 
consultas
seria muito mais elucidativo e prático do que montar baterias de testes 
dessa magnitude
para tentar provar o óbvio.

Atenciosamente,

Mozart Hasse 


_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a