Arquitetura de Dados

Como ajudamos a Icatu Seguros reduzir o tempo de execução de um processo de 17 horas para minutos

RESUMO

A Icatu Seguros enfrentava problemas de performance em determinadas rotinas do seu banco de dados SQL Server, na qual o processamento delas, levava horas para ser concluído e causava indisponibilidade no sistema durante sua execução. Devido a forma que algumas rotinas foram escritas, gerava impacto na manutenção, performance e sustentabilidade do sistema. Neste cenário a EximiaCo desempenhou um papel importante refatorando o código legado, seja reescrevendo as possíveis armadilhas que são comuns no desenvolvimento de código para banco de dados, quanto a criação de índices mais assertivos no banco de dados. Este projeto além de melhorar consideravelmente a experiência do usuário final que agora precisa aguardar um tempo muito menor no processo, ainda garantiu a possiblidade de outras rotinas rodarem durante esse processamento, sem causar maiores impactos na aplicação.

 

ev:225945183822015

Status
Concluído
Sponsor: Alexandre Tosto

SITUAÇÃO (ANTES DA NOSSA ATUAÇÃO)

A Icatu Seguros tinha uma rotina de processamento de lote judicial, que era executada um vez por mês. A execução desse processo, levava cerca de 17 horas de duração, causando diversos impactos negativos no banco de dados, pois era inviável utilizar o sistema enquanto o processamento do lote estivesse executando. A ausência de índices assertivos para determinadas consultas, bem como alguns padrões de escrita de código, utilização de cursores e processamento linha a linha de cada movimento, tornava o processo muito lento e oneroso para o banco de dados gerando uma série de bloqueios.

IMPLICAÇÕES

A escrita do código para bancos de dados relacionais, utilizando essa abordagem row-by-row, gera um impacto muito negativo no ambiente como um todo. Apesar do baixo processamento, a execução do código tende a ser morosa, levando muito mais tempo do que realmente se faz necessário para recuperar e processar os resultados das consultas. Ainda a ausências de índices assertivos para as consultas em questões, fazia com que uma grande massa de dados fosse lida para processar poucas linhas, gerando bloqueios desnecessários de registros no banco de dados, e em alguns casos, tabelas inteiras.

O QUE FIZEMOS

A abordagem da EximiaCo nesse projeto, foi literalmente colocar a mão na massa, para reescrever milhares de linhas de código em procedures no banco de dados. Após uma análise detalhada elencou-se os principais gargalos do processo. na qual proveria um ganho substancial de tempo de processamento e uso de recursos do ambiente do banco de dados. Durante todo processo foram feitas entregas incrementais do código refatorado em que foi possível constatar uma melhora consideravel no tempo de duração do processamento. Últimos testes todo o processo foi feito em cerca de uma hora no ambiente de testes. O processo de refatoração foi fundamental também para aprimorar o conhecimento da equipe de desenvolvimento, mostrando como evitar determinadas armadilhas, assim como a forma correta de desenvolver para banco de dados, utilizando uma abordagem set-based.

ENTREGÁVEIS

O trabalho ainda está em fase de desenvolvimento, apesar dos ganhos já se mostrarem muito interessantes:

Entregas Incrementais: Devido a complexidade do código (milhares de linhas), as entregas estão sendo incrementais, sendo feito diversos testes a cada procedure alterada.

Confiabilidade: Todo código que foi refatorado é submetido a testes rigorosos não apenas de performance, mas também garantido a confiança em relação ao código anterior.

Sustentabilidade: A criação de índices assertivos, se torna primordial para garantir a sustentabilidade do sistema, mesmo com o constante crescimento do volume de dados no banco de dados. Isso dá mais segurança que para cada novo mês, a duração total do processamento não aumente com o passar do tempo.

Disseminação do Conhecimento: Todo código alterado é discutido com a equipe de desenvolvimento, mostrando os benefícios alcançados. Essa constante discussão aumenta o conhecimento da equipe no desenvolvimento diário das suas tarefas, visando entregas com mais qualidade e performance, minimizando os problemas no ambiente do banco de dados.

CHANGELOG

O projeto encontra-se finalizado no momento. O resultado final foi a redução de uma rotina de 17 horas, para 20 minutos, o tempo total de execução.

CLIENTE

Confira o cliente que está associado a este case:

CONSULTORES E ENGENHEIROS

Confira os consultores e engenheiros que participaram deste case:

Especialista em performance de Bancos de Dados de larga escala

OFERTAS ASSOCIADAS

Confira as ofertas que estão associadas a este case:

0
Gostaríamos de ouvir sua opinião!x

ACESSO RESTRITO

Esse conteúdo é de acesso restrito à equipe de colaboradores da EximiaCo.

Trabalha na EximiaCo? Então conecte-se com sua conta:

Tenho interesse em conversar

Se você está querendo gerar mais resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Área de colaboradores

Esse ambiente é de acesso restrito à equipe de colaboradores da EximiaCo.

Trabalha na EximiaCo? Então conecte-se com sua conta: