Estudo de Caso I – Parte 6

Siga o passa-a-passo corretamente, não altere os nomes aqui definidos, pois, futuramente serão usados para outros exemplos, ou estudos de caso. Se você alterá-los esteja ciente disto.
Identificando possíveis campos para índices

Muitas vezes, nos vemos perdidos quando temos que definir índices. Apesar de alguns índices serem explícitos, existe situações, onde ganhar alguns milisegundos é crucial. E é neste momento, que o DBA entra em ação.

Umas das primeiras coisas a ser feita, é a identificação de campos repetidos na claúsula WHERE. Todo campo definido dentro do WHERE, poderia ser adiciona em um índice. Lembrando que a criação de muitos índices, não é a solução.

— Primeira Condição
EXPLAIN ANALYSE SELECT nome, dt_nasc, sexo FROM pessoas WHERE sexo = ‘M’ AND dt_nasc BETWEEN (now() – interval ’28 YEARS’) and now();

— Segunda Condição

EXPLAIN ANALYSE SELECT nome, dt_nasc, sexo FROM pessoas WHERE (nome like ‘%VALE%’ AND sexo = ‘M’ AND dt_nasc < (now() – interval ’28 YEARS’) );

Nossas consultas

Vendo nossas consultas, podemos identificar que os campos sexo e dt_nasc aparecem em nossas duas consultas. Então, criamos um índice que atende nossas duas consultas, essa é a situação perfeita, pois a criação de mais de um índice, não seria a melhor opção em um ambiente crítico.

Conclusão do Estudo de Caso

Vimos que a criação de índices, apesar de simples, pode não resolver e até atrapalhar se feito de forma errada e sem analises. Ambientes pequenos ou médios, onde a quantidade de recursos é suficiente, isso acaba sendo imperceptível, mas em ambientes com muito OLTP e OLAP, sua criação é de extrema importância, e as vezes pode até significar a continuidade do negócio. Visto que aumentar a quantidade de recursos tem um custo muito alto.

Este foi nosso primeiro estudo de caso, acompanhe outros estudos de caso e aprenda a deixar seu postgres tunado.