P { margin-bottom: 0.21cm; }P.western { }A:link { }Traducaolivre, escrita por mim, do original "5-Minute Introduction to PostgreSQLPerformance"(http://www.westnet.com/~gsmith/content/postgresql/pg-5minute.htm). OPostgreSQL vem de fabrica com uma configuracao basica que visa acompatibilidade com o maximo possivel de dispositivos, o queprejudica muito o desempenho. Ha boas chances de os parametrospadrao serem muito aquem do que o seu sistema suportaria.Aoinves de descrever cada detalhe de tudo o que voce deveriaeventualmente saber, aqui nos daremos uma visao simplificada dosprincipios basicos, com um olhar voltado para os itens mais comunsrelacionados ao desempenho e as coisas que os iniciantes noPostgreSQL geralmente nao tem conhecimento. Parauma leitura verdadeiramente muito rapida, leia apenas as linhas emnegrito em cada secao e siga essas orientacoes.Osprincipais parametros do servidor de banco de dados sao mantidos emum arquivo chamado postgresql.conf. Voce precisara editar estearquivo e reiniciar o servidor para que as alteracoes facamefeito. O desempenho devera cair por um curto periodo de tempodepois de fazer isso porque o sistema vai perder as informacoes quesao armazenadas em cache durante a reinicializacao.Utilizeuma versao atualizadaAprimeira versao do PostgreSQL que tem bom desempenho em hardwareatual e a 8.1, a versao atual 8.2 e ainda melhor(voceprovavelmente deve estar executando a versao 8.2.4, versoesanteriores a 8.2 tinham algumas peculiaridades que e melhor voceevitar). Casoesteja executando uma versao anterior a 8.1 considere realizar oupgrade.Ha muitos problemas de desempenho que sao insoluveis em versoesantigas. Se voce estiver executando uma versao antiga desconsiderea secao a seguir.Definashared_buffers e effective_cache_size baseado na memoria totalOparametro de configuracao shared_buffers determina quanta memoriae dedicada ao uso do PostgreSQL para armazenar dados. Umvalor razoavel para shared_buffers e 1/4 da memoria do seusistema.E provavel que sejanecessarioaumentar otamanho damemoria que o sistema operacional permite alocar de uma vez paradefinir estevalor. ConsulteGerenciandorecursos do kernel para mais detalhes. Note que no Windowsgrandes valores para shared_buffers nao sao tao eficazes e vocepode encontrar melhores resultados mantendo-orelativamente baixo e usando o cache do sistema operacional aoinves.effective_cache_sizedeve ser definido como a quantidade de memoria de sobra para o cachede disco tendo em conta que e usado pelo sistema operacional,memoria dedicada ao PostgreSQL e outras aplicacoes. Se o valor formuito baixo, os indices nao podem ser utilizados para a execucaode consultas da maneira que voce esperaria. Definindo aeffective_cache_size como 1/2 do total dememoria seria uma configuracao conservadora normal. Epossivel encontrar uma melhor estimativa olhando para asestatisticas do seu sistema operacional. Em sistemas UNIX-like,somando os numeros free+cached do free ou top. No Windows, consulteo "Cache do sistema" na aba Desempenho do Gerenciador deTarefas do Windows. Observe que voce deve adicionar o valor definidopara shared_buffers a este total - o query planner utilizaestimated_cache_size tal como esta, sem acrescentar valor para voce.Analiseo seu banco de dadosO PostgreSQLmantem estatisticas sobre suas tabelas que permitem executarcorretamente as consultas. Se estas estatisticas estaodesatualizadas voce nao tera um bom desempenho. Voce podeatualizar as estatisticas usando o comando ANALYZE.Para fazer isso e limpar os dados nao utilizados, execute ocomando VACCUMANALYZEpara forcar uma atualizacao das estatisticas elimpeza das tabelas. Isto e particularmente importante sevoce acabou de carregar ou modificar uma grande quantidade de dados.Voce deve dar uma lida em limpezaautomatica das tabelas seainda nao o fez, o que