Dicas para otimizar consultas em sistemas

Tempo de leitura: 5 minutos
Desenvolvimento de Software
por em 2 de julho de 2020

Realizar consultas na camada de aplicação ou no banco de dados impacta diretamente no tempo de utilização de um sistema. Pensando nisso, Diego Umpierre apresentou aos colegas, em uma edição online do SoftDrops*, dicas gerais para otimizar essa tarefa. O Desenvolvedor Java compartilhou alguns passos para verificar e melhorar a performance de um sistema que está lento.

O primeiro passo é identificar quais métodos estão sendo utilizados, se há lógicas repetidas e quantos acessos ao banco ou serviços estão sendo feitos e quais os dados realmente necessários – que são usados. Isso acontece pois, quando se trata de um sistema que já está rodando, deve-se trabalhar para que não ocorram muitos impactos ou haja prejuízo ao todo.

Consulta ao banco de dados

Se a aplicação foi verificada e não houve necessidade de melhorias, Diego sugeriu analisar o banco de dados. Uma opção é avaliar os índices e entender como o seu mecanismo funciona. Outra possibilidade é descobrir o tipo de informação que é necessário buscar e captar somente o que será utilizado – além de avaliar como estão armazenados. Pensando nisso, o desenvolvedor comparou o banco de dados a um livro, no qual buscamos algo em suas páginas: o índice auxilia na redução dos lugares nos quais a busca será feita e dos acessos para o levantamento de informações.

O desenvolvedor destacou que a lentidão nas consultas de um banco de dados é um dos principais pontos a monitorar. Para aprimorar esse processo, é necessário identificar as tabelas envolvidas e definir um plano de ação. Uma dica é realizar combinações das tabelas maiores antes das menores, definindo a ordem de busca e quais informações serão pesquisadas. Essas definições são importantes, pois há uma grande quantidade de dados que trafega do banco para a aplicação, impactando no tempo de processamento.

Views materializadas e tabelas particionadas

As informações podem ser acessadas de diferentes maneiras. Uma forma é por meio de views materializadas. Ela executa periodicamente a consulta que a compõe, gravando os dados para, posteriormente, serem acessados. Esse formato se torna mais interessante que o uso de views tradicionais, uma vez que essas executam as consultas toda a vez que a acessam. Sendo assim, deve ser levado em consideração que o tempo total da ação é a soma da consulta com o período que demora para a informação ser gerada.

Outro modo de busca ocorre por meio de tabelas particionadas. Nesse caso, as informações são separadas conforme o parâmetro desejado. Um índice é criado e os dados são separados por “pastas virtuais”. Quando a requisição de uma informação é realizada, o local específico com o registro é acessado, evitando a leitura de uma grande quantidade de informações antes de aplicar os filtros.

Otimizar toda a cadeia

Diego salientou a importância de olhar para toda a cadeia ao fazer as melhorias, principalmente se o sistema já está sendo utilizado. Mas, afinal, o que seria toda a cadeia? Devemos observar, por exemplo, se a tela que será otimizada é utilizada uma vez por mês ou todos os dias. É necessário avaliar se o tempo necessário para atualizar algo pouco utilizado pode ser redirecionado e investindo em outras soluções, entregando mais valor. Olhar o banco de dados, o back-end, o front-end, verificar o todo. Além de melhorar o tempo das aplicações, realizar esse trabalho também traz outros benefícios, visto que essas ações podem impactar nos custos e na infraestrutura utilizada, por exemplo.

O desenvolvedor aproveitou para relembrar outros elementos para otimizar consultas em um sistema. A importância de ter pessoas com conhecimentos diversos em um time, especializadas em diferentes tecnologias e linguagens, é uma delas. Isso contribui para compreender o todo, conforme vimos anteriormente. Nesse sentido, trocar conhecimento é muito importante para criar hipóteses e testar diferentes métodos. Ao ser questionado por uma colega, Diego reforçou que o modelo ágil facilita muito para essa colaboração acontecer. Pensando que, nesse formato de trabalho, a responsabilidade pelo sucesso de um projeto é coletiva, o time pode auxiliar na resolução de problemas e otimizações, contribuindo para realizar uma entrega com qualidade.

*O SoftDrops é um evento de troca de conhecimento que acontece todas as quartas-feiras, na sede da SoftDesign. A cada semana, um colaborador se predispõe a expor para os colegas algum tema de seu interesse, que tenha relação com os três pilares do nosso negócio: design, agilidade e tecnologia. A minipalestra dura em torno de trinta minutos e é seguida por um bate-papo entre os participantes.

Sugestões ou críticas para nosso blog? Entre em contato pelo endereço mkt@softdesign.com.br.