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