Fala pessoal, tudo bom?
Provavelmente em algum momento você já teve que carregar uma tabela fato grande e notou que alguns campos numéricos e datas não vieram formatados da forma em que precisa para exibi-los e utiliza-los em suas expressões, nossa primeira reação é de adicionar as funções de formatação no script de leitura deste QVD, mas logo percebemos que a leitura que antes ocorria em 20 segundos passou a demorar mais de 10 minutos por que perdemos a leitura otimizada do QVD.
Lembram o que é uma leitura otimizada? Eu falei disso neste post: Melhores Práticas – QVD Optimized.
Em resumo, um QVD mantém a leitura otimizada somente quando realizamos essas ações em sua leitura:
- Renomear campos
- DISTINCT
- Omitir Campos (Omit)
- Where Exists Simples
É… lá se vai a leitura otimizada quando utilizo as funções de formatação Date ou Num. Mas afinal, é possível formatar campos sem que percamos a leitura otimizada deste QVD? SIM!
Primeiro precisamos de uma tabela com campos não formatadas, como a imagem abaixo:
Neste exemplo temos o campo DATA e VALOR sem formatação.
Queremos formatar a DATA como ‘DD/MM/YYYY hh:mm:ss’ e o VALOR com duas casas decimais.
IMPORTANTE: Estamos apenas formatando o campo, ou seja, não podemos remover a informação de hora, minuto e segundo do campo de DATA, pois isso seria uma transformação de valores.
Agora precisamos criar uma tabela temporária com a formatação correta para os campos que desejamos formatar. Para isso iremos utilizar o comando AutoGenerate.
Note que cada campo formatado deve conter o mesmo nome do campo que será formatado.
Veja o código:
A formatação pode ocorrer sobre o Null(), pois o mais importante é fazermos o QlikView identificar que o campo DATA e o VALOR possuem estas formatações.
Agora podemos carregar o nosso QVD e depois dropar a tabela de formatação de campos:
Vejam o processo de execução do script:
Muito bom!!
Por que isso ocorre? Pois o Qlikview cria a associação da formatação para o campo independente da tabela em que este campo esteja (lembre-se da associação de dados), ou seja, para o Qlikview o campo DATA possui a formatação ‘DD/MM/YYYY hh:mm:ss’ e o campo VALOR possui a formatação ‘#.##0,00’.
Material para download
Segue um qvw demonstrando os passos realizados deste artigo. Clique aqui!
Conclusão
É claro que podemos formatar campos através da aba Número das propriedades do documento, mas é importante identificarmos os pequenos erros que cometemos por falta de entendimento de como a ferramenta se comporta para determinadas situações.
Até a próxima semana pessoal!!




Sensacional chefe, em uma simples aplicação já ganhei 4 minutos em um recarga que demorava 5 minutos…
Espero que tenha mais dicas de performance…
Deixa eu correr e revisar todas as minhas aplicações.
Abs.
Que legal Egnaldo! Fico feliz em estar ajudando 🙂