Olá pessoal tudo bem.
Atualmente estou trabalhando com extração e transformação de dados porem tenho que trabalha com fonte de dados muitos grandes e que nunca são alteradas.
As vezes tenho que consulta um mesmo volume de dados varias vezes no dia muitas vezes vários dias, pensando em melhorar a performance das query que não mudam estou transformando varias tabelas em uma única tabela por exemplo:
select * from tabela1 t1 inner join tabela2 t2 on t2.coluna1 = t1.coluna1 where t1.coluna2 is not null
estou pegando o resultado e transformando em uma única tabela no caso ficaria tm_t1_t2 assim quando for busca os dados não preciso fica fazendo uniões só faço
select * from tm_t1_t2
foi uma estratégia que pensei não sei ser é melhor mais melhorou um pouco a performance porem estou achando que continua lento ainda.
Tem ideia de como melhorar essas performances dessas consultas.
Detalhes
Tenho SSD
Não estou usando índice nessa tabela intermediário, não é feito união com outras tabelas
Memória esta trabalhando em média 72% a 84% notebook 8G
CPU trabalhando em 40% Processador i5 10º geração
banco de dados Atual é MySQL, as vezes utilizo outros bancos como Firebird, SQL Server etc.. sempre relacional
Não tenho experiência com banco normalizado, qualquer coiso estudo ser for o caso.
Tem casos em que chega gasta 5 horas para terminar uma consulta.
Depois que crio esta tabela intermediaria não aplico nenhum join where, ou outro tipo de filtro ou função.