image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Nedymar Schuabe
Nedymar Schuabe15/05/2024 18:23
Compartilhe
Microsoft Certification Challenge #3 DP-100Recomendados para vocêMicrosoft Certification Challenge #3 DP-100

SQL Optimization

  • #SQL
  • #Oracle DB

Olá, ao longo da minha jornada profissional, fui participando de alguns projetos. E nesses projetos consegui me identificar muito na parte de banco de dados, em PL/SQL e otimizações de consultas.

E um desses projetos que gostaria de compartilhar hoje é de otimização de uma view. Foi em ambiente oracle e sobre o sistema MV.

A query veio para mim com um tempo de 10min e 40seg. Sim, é uma query que busca de várias tabelas e até sobre algumas tabelas com uma má performace. Mas, aceitei o desafio da tentativa de otimização.

Fiz vários testes, criando índices, peguei algumas subquerys e coloquei em views, outras em uma function, aumentei as condições no where, mas adiantava pouco.

E até que diante de uma conversa com o cliente, que explicava sobre a ideia de algumas colunas, me deixou com uma pulga atrás da orelhavem uma coluna específica.

Analisei mais, e resolvi tirar a "tal" da coluna para verificar (que era uma baita de uma subquery), e o tempo diminui absurdamente, acredite, de 10min sem essa coluna foi para 30seg, inacreditável.

Então comecei a focar na melhoria dessa coluna. 

Bom, até que depois de várias tentativas, apareceu o resultado kkk

Mostro o resultado na imagem abaixo haha

Mas, em resumo, foi alguns faotores. Na subquery tinha vários Cases, então arrumei mais e fazendo alguns testes, tinha cases que nunca entravam, então retirei, enfim, dei uma organizada nisso. Depois vi que a subquery chamava várias vezes uma function para o mesmo resultado, ao analisar mais afundo, vi que cada chamada na function subscrevia o resultado, e assim foi, retirei algumas chamadas e fui executando a view para ver os impactos.

Após concluir essa parte, não me contentando com o resultado, fui fazendo mais testes e até que um dos testes foi aceitável kk criei uma function apenas para pegar esse resultado da subquery.

Mas, é isso, compartilhando um dos projetos que participei. Fico feliz em poder ajudar nisso e ter um resultado de SQL rápido e também bem documentada para o próximo desenvolvedor.

Compartilhe
Recomendados para você
Heineken - Inteligência Artificial Aplicada a Dados com Copilot
Sysvision - Data Analytics com Power BI
Microsoft Azure Cloud Native
Comentários (0)
Recomendados para vocêMicrosoft Certification Challenge #3 DP-100