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!
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
Postar um comentário