Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Demora na carga de dados ao Renomear os Campos

Pessoal, estou fazendo a carga de alguns dados, por ano a média de registros da tabela em questão é de 10 Milhões de Registros, criei um extrator que apenas lê o BD e gera um QVD com os dados, e na minha aplicação, carrego esses dados alterando o nome dos campos de forma que fiquem amigáveis ao usuário, como por exemplo dt_pagto_divida para [Data de Pagamento da Divida], mesmo carregando apenas 1 ano, quando renomeio todos os campos, são 31 nessa tabela especifica, a carga leva em média 45 Segundos, se não renomeio os campos a mesma carga leva cerca de 15 segundos, alguém tem alguma dica para que eu possa melhorar essa performance e ter os campos renomeados !?

Obrigado !!!

Labels (1)
1 Solution

Accepted Solutions
Not applicable
Author

Na verdade a demora é somente porque renomeio os campos, não faço IF ou qualquer outra coisa, apenas renomeio os fields com por exemplo: campo1 AS [Campo 01]

Mas fazendo alguns testes, percebi que o jeito que ficou mais rápido foi, criar um mapping para os campos, e usar a função: Rename Fields using FieldMap;

Não sei se é a melhor solução, mas a principio, ficou rápido, o problema ainda é que crio um MasterCalendar baseado nas datas dessa tabela, mas vou ver se crio um qvd, como calendário já pronto toda vez que ler os dados do BD, acho que já vai agilizar também a carga.

Obrigado pelas respostas !!!

View solution in original post

9 Replies
Not applicable
Author

Faz uma segundo qvd somente pra renomear esses campos extraídos .A leitura do QVD é mais rápida que a leitura do BD .

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

O QVD é a representação em arquivo de como os dados ficam em memoria.  Se não tiver nenhuma mudança ou condição (com excessao do exists) ele le algo como 1milhao por segundo.  Ao fazer algum tipo de where ou usar função (year / month) ou mesmo concatenar campos, perde-se esta leitura em modo performático.

A saida seria antes de salvar o QVD fazer estas tratativas nos campos.

AMF

furtado@farolbi.com.br
nicolett_yuri

Jackson, da uma lida em meu post para entender um pouco mais sobre leitura otimizada do qvd

Melhores Práticas QlikView - QVD Optimized

Not applicable
Author

Na verdade a demora é somente porque renomeio os campos, não faço IF ou qualquer outra coisa, apenas renomeio os fields com por exemplo: campo1 AS [Campo 01]

Mas fazendo alguns testes, percebi que o jeito que ficou mais rápido foi, criar um mapping para os campos, e usar a função: Rename Fields using FieldMap;

Não sei se é a melhor solução, mas a principio, ficou rápido, o problema ainda é que crio um MasterCalendar baseado nas datas dessa tabela, mas vou ver se crio um qvd, como calendário já pronto toda vez que ler os dados do BD, acho que já vai agilizar também a carga.

Obrigado pelas respostas !!!

Not applicable
Author

Yuri, interessantíssimo o post !!!

Mas vi que no post na parte onde diz: "Alguns exemplos que farão com que a carga seja otimizada:", cita com primeiro item o "Renomear Campos", que salvo engano é o que faz muita diferença na carga das minhas informações, tipo lendo o qvd de origem, sem renomear campo algum a carga é muito rápida, já renomeando a performance cai sensivelmente, será que pode ser algo com o meu qvw, ou alguma configuração no qlikview !?

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Jackson,

boa saída usando o rename.....Ja usei algumas vezes mas nem me passou pela cabeça. Parabéns.

furtado@farolbi.com.br
nicolett_yuri

Sim Jackson, renomear através do alias "AS" mantém a leitura otimizada do QVD

Not applicable
Author

Na verdade a minha leitura esta muito mais lenta usando o "AS" !

nicolett_yuri

Jackson, concordo que ela pode ficar mais lenta em relação a leitura sem nenhum campo renomeado, porém o importante aqui é manter a leitura otimizada do qvd.

Ainda não fiz um teste utilizando o RENAME FIELD, mas pode ser uma boa saída.