Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
mercadante
Creator
Creator

Concatenate x Left Joins

Caros, Boa tarde!

Estou trabalhando na otimização de um Dash que está praticamente impossível de utilizar, e dentro de algumas ações estou substituindo o concatenate por left join. 

Como não estou conseguindo testar por conta do alto consumo de memoria, solicito a opinião de vocês para saber se o resultado que espero será alcançado.

O QVD possui aproximadamente 26,3 GB de tamanho e 300 milhões de linha. 

Foi utilizado variáveis para composição dos indicadores e dimensões. Eu sei que isso pesa bastante, porem não encontrei ainda uma solução de contorno. O usuário gostar do dinamismo em escolher a expressão e dimensão.

Este QVW possui uma tabela fato e algumas das tabelas auxiliares carregam dados dos últimos 3 anos. Elas se relacionam através de uma chave forte. Minha ideia é substituir os concatenates das tabelas auxiliares por left join para a tabela fato. Desta forma vou inflar ainda mais a tabela fato, porem não terei mais os relacionamentos com as auxiliares que deixaram de existir.

Desta forma terei algum ganho de performance no qlik e até mesmo redução de consumo de memoria?

 

Labels (1)
2 Replies
marksouzacosta
Partner - Creator II
Partner - Creator II

Boa tarde Mercadante,

Saudações brasileiras.

Pelo que entendi, concatenate não é indicado nesse caso porque o concatenate serve pra unir dados onde a estrutura é a mesma. Tem como forçar a concatenação, que deve ter sido no seu caso, pelo comando Concatenate e o resultado disso é criar multiplas colunas com valores nulos.

Então o melhor neste caso é você usar o Left Join e eu usaria ainda com o Keep: Left Keep.

De qualquer forma, isso não irá resolver seu problema porque são muitos dados. Nesses casos eu faço o seguinte:

  1. Verifique com o cliente se não é possível reduzir o número de colunas das tabelas. Muitas vezes carregamos todas os campos mas eles muitas vezes nunca são utilizados
  2. Verifique com o cliente se é possível reduzir o número de linhas das tabelas. As vezes podemos remover alguns anos de dados, ou alguma categoria de dados, etc
  3. Nos relacionamentos entre as tabelas, use AutoNumber nos campos chaves. Isso faz uma diferença significativa na quantidade de memória carregada pela sua aplicação
Read more at Data Voyagers - datavoyagers.net
mercadante
Creator
Creator
Author

Boa tarde Mark!

Vou seguir sua dica incluindo o autonumber e substituir o concatenate por left Keep.

 

Ainda não quero partir para solução de tirar alguns anos de informação.

Se não tiver jeito ai falo com o usuário

Volto aqui na comunidade para reportar os resultados.

 

A principio muito obrigado pela dica!