Pular para o conteúdo principal

Otimização de consultas

Otimizar consultas é quase um ato de sobrevivência! Já vi muita confusão entre a equipe de desenvolvimento e a equipe de infraestrutura que poderia ser minimizada com uma "simples" otimização de consultas.

A equipe de desenvolvimento, normalmente, quer trazer todos os dados que precisa para dar o retorno com o mínimo de acessos ao SGBD, só que ir menos vezes ao banco não quer dizer que seja bom.

Como Assim???

Se eu faço uma consulta, cheia de joins, order by, distinct, not in, não utilizar o bloqueio adequado, posso estar com uma consulta que vai "sobrecarregar" o SGBD.

Algumas consultas podem melhorar somente com alguns ajustes nas junções, comparações etc, e outras seria melhor se valer da flexibilidade da aplicação, fazendo consultas menores, alimentando variáveis, que podem ser utilizadas em comparações posteriores.

Em alguns casos somente os ajustes não serão capazes de fazer o milagre da otimização acontecer. Vez ou outra índices precisam ser criados, recriados ou reorganizados, e as estatísticas atualizadas.

Claro que cada situação deve ser bem avaliada. O mais importante é sempre avaliar e, se possível, discutir com um DBA para chegar a melhor maneira de causar o mínimo impacto na operação e ter também seu tempo otimizado.

Até a próxima!

Comentários

Postagens mais visitadas deste blog

Tipos de dados no Sql Server

De vez em quando nos deparamos com uma questão: qual o tipo de dado deve ter um determinado campo? Para um DBA isso é um bom questionamento, pois com base nessa definição outras decisões serão tomadas. O que me motivou a pesquisar e escrever sobre isso foi a frase de um desnvolvedor: "Pouco importa se é varchar, char, text..., pra mim tudo é string."

Conceitos básicos de banco de dados - Integridade

A integridade diz respeito ao nível de confiança das informações do banco de dados, ou seja, a credibilidade das informações e à lógica das informações. Regras de restrição de integridade configuraram um banco de dados para ser alimentado por informações com características lógicas específicas, validadas como verdadeiras antes do seu armazenamento, diminuindo a probabilidade de falta de integridade no banco de dados.