Este é o primeiro de uma série de post’s, sobre alta performance no postgresql, descrevo várias técnicas e formas de melhorar o desempenho de seu SGDB, criando índices estratégicos, analisando o planejador de consultas (EXPLAIN ANALYSE), modificando configurações no postgresql.conf. Tudo isso será mostrado e explicado de forma bem didática e simples.

Com o tempo, as consultas, inserções, modificações e exclusões em um SGDB começam a ficar lentas, as tabelas ficam grandes demais fazendo com que o SGDB perca desempenho. Quando isso acontece, a única solução é a aplicação de técnicas de tuning de desempenho.

Tuning em Banco de Dados

O processo de tuning é algo que só deve ser realizado quando houver uma real necessidade, pois envolve uma grande quantidade de processos tanto do SGDB quanto do sistema operacional. Tuning não é só configuração do SGDB, algumas vezes requer configuração no sistema operacional ou otimizar as consultas realizadas no banco, e algumas configurações podem acarretar em problemas futuros ou até mesmo mau funcionamento do SGDB.

A técnica de tuning é uma prática feita em todos os SGDB’s importantes. É uma necessidade de toda grande empresa, e requer um grande nível de conhecimento e experiência sobre os processos é suas técnicas, pois nem sempre o problema será resolvido com uma ou duas alterações, às vezes, é necessário uma mudança nas consultas.

Prática de tuning no Postgresql

As formas de tuning no postgresql, vão desde a criação de índices estratégicos, analise de explain analyse, a configuração de tags no arquivo de postgresql.conf.

  • Índices – Deve ser criados sempre que se encontrar campos muitos usados em na cláusula WHERE, ORDER BY, GROUP BY;
  • EXPLAIN ANALYSE – Analisar como o planejador realiza as buscas, e buscar por melhores caminhos;
  • postgresql.conf – Modificar configurações para melhorar o desempenho;
Aplicando tuning no Postgresql

A prática de tuning não é algo que se faz simplesmente por fazer. É necessário ter conhecimento e prática sobre o assunto. Algumas técnicas são simples e de fácil compreensão, mas algumas requerem conhecimento sobre sistemas operacionais ou hardware.
A aplicação de tuning eventualmente requer muita análise, devendo sempre trabalhar cada caso de uma forma diferente, ou seja, não existe uma “receita de bolo” pré-definida.

Estudo de Caso

Neste nosso primeiro estudo de caso, teremos uma situação bastante comum em muitos SGDB’s, situações onde a criação de índices estratégicos simples, complexos e mistos serão usados para a melhoria no banco.
Vamos criar as tabelas e populá-las com dados aleátorios, faremos a análise desse dados, e dessa forma, encontraremos a melhor opção. Será mostrado o passo-a-passo de toda a análise e disponibilizado todo o material para ser replicado e estudado.

Estudo de Caso I – Uso de índices.
Estudo de Caso II – pg_xlog.
Estudo de Caso III – postgresql.conf.
Estudo de Caso IV – Monitoramento Pontual.
Estudo de Caso V – Monitoramento Contínuo.