![Page 1: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/1.jpg)
QMeeting 2015
Pequenos erros, grandes problemas!Yuri Nicolett
![Page 2: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/2.jpg)
A Qlik Technologies Inc. não é patrocinadora deste evento e não é responsável por qualquer conteúdo ou informação oferecida, este evento foi organizado pelos integrantes da comunidade de desenvolvedores Qlik e parceiros que desejam debater as melhores práticas com a plataforma e estreitar o relacionamento profissional.
![Page 3: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/3.jpg)
05Unidades
SP, DF, PE, RS, SA
+70Canais e Alianças
04 Premiações Qlik
10 ANOS
![Page 4: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/4.jpg)
• Especialista em Segurança da Informação
• Especialista Qlik
• Autor do Blog: blogdonicolett.com.br
• Qlik MVP 2015
![Page 5: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/5.jpg)
Sua aplicação esta lenta? (Qlik-Wait-View)
Sua aplicação faz o QvServer reiniciar?
Os dados estão errados e você não sabe como?
![Page 6: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/6.jpg)
Uso do DISTINCT em união de tabelas.
![Page 7: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/7.jpg)
Uso do DISTINCT em união de tabelas
![Page 8: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/8.jpg)
Uso do DISTINCT em união de tabelas
900
750
![Page 9: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/9.jpg)
Uso do DISTINCT em união de tabelas
![Page 10: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/10.jpg)
Uso do DISTINCT em união de tabelas
E se….
O comportamento do DISTINCT será aplicadona tabela final que a união resultará.
![Page 11: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/11.jpg)
Leitura de múltiplos arquivos em união de tabelas.
![Page 12: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/12.jpg)
Leitura de múltiplos arquivos em união de tabelas
![Page 13: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/13.jpg)
Leitura de múltiplos arquivos em união de tabelas
E se….Adicionarmos o nome da empresa?
![Page 14: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/14.jpg)
Leitura de múltiplos arquivos em união de tabelas
E se…. Adicionarmos o nome da empresa?
![Page 15: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/15.jpg)
Leitura de múltiplos arquivos em união de tabelas
E se…. A união ficarácorreta, pois a tabela NotaFiscalvai receber os dados da tabela Empresassomente apóscarregar todos osarquivos.
![Page 16: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/16.jpg)
Qual dessas expressões apresenta o melhor desempenho?
SUM({$<Flag_True_or_False = {'-1'}>} Valor)
SUM({$<Flag_True_or_Null = {'-1'}>} Valor)
SUM({$<Valor = {'<=0,6000'}>} Valor)
SUM(if( Valor<=0.6000, Valor))
SUM(Valor*Flag_True_or_False)
1
2
345
![Page 17: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/17.jpg)
Expressões booleanas são melhores que flags.
![Page 18: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/18.jpg)
Expressões booleanas são melhores que flags
Em ciência da computação, booleano é um tipo de dado primitivo que possui dois valores, que podem ser considerados como 1 ou 0, falso ou verdadeiro.
Wikipédia
![Page 19: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/19.jpg)
Expressões booleanas são melhores que flags
Cenário…
True() = -1False() = 0
![Page 20: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/20.jpg)
Qual dessas expressões apresenta o melhor desempenho?
SUM({$<Flag_True_or_False = {'-1'}>} Valor)
SUM({$<Flag_True_or_Null = {'-1'}>} Valor)
SUM({$<Valor = {'<=0,6000'}>} Valor)
SUM(if( Valor<=0.6000, Valor))
SUM(Valor*Flag_True_or_False)
1
2
345
ms187187156234218
![Page 21: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/21.jpg)
Leitura Otimizada de QVD
![Page 22: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/22.jpg)
Leitura Otimizada de QVD
Transformações Permitidas
Renomear campos
DISTINCT
Exists
OMIT
Concatenate
Transformações Não Permitidas
JOIN
Agregar campos
Condições Where
Funções
![Page 23: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/23.jpg)
Concatenar com leitura otimizada
![Page 24: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/24.jpg)
Concatenar com leitura otimizada
Tabela 1Tabela 2Tabela 3Tabela 4Tabela 5 A B C D E F
A B C D E FA B C D E FA B C D E FA B C D E F
![Page 25: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/25.jpg)
Concatenar com leitura otimizada
Tabela 5Tabela 4Tabela 3Tabela 2
AAAA
BBBB
CCC
DD E
Tabela 1 A B C D E F
![Page 26: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/26.jpg)
Concatenar com leitura otimizada
Tabela 1Tabela 2Tabela 3Tabela 4
AAAA
BBBB
CCC
DD E
Tabela 5 A B C D E F
![Page 27: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/27.jpg)
Concatenar com leitura otimizada
Cenário…
Leitura Otimizada
Leitura Otimizada
Leitura não otimizada de um registro
Leitura Otimizada
![Page 28: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/28.jpg)
Se isso, senão aquilo...
![Page 29: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/29.jpg)
Se isso, senão aquilo...
Ou…
![Page 30: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/30.jpg)
Se isso, senão aquilo...
Possíveis soluções – Condicional da Expressão
![Page 31: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/31.jpg)
Se isso, senão aquilo...
Possíveis soluções – Expansão do sinal de dólar
![Page 32: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/32.jpg)
Se isso, senão aquilo...
Possíveis soluções – Expansão do sinal de dólar
![Page 33: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/33.jpg)
Se isso, senão aquilo...
Possíveis soluções – Expansão do sinal de dólar
![Page 34: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/34.jpg)
Como devem ser minhas chaves?
![Page 35: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/35.jpg)
Como devem ser minhas chaves?
Concatenadas?
Hash?
![Page 36: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/36.jpg)
Como devem ser minhas chaves?
A Tabela de Símbolos
![Page 37: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/37.jpg)
Como devem ser minhas chaves?
A Tabela de Símbolos - Características
1. Será criada uma tabela de símbolos por coluna carregada
2. Uma linha para cada valor distinto
3. O ponteiro possui a quantidade mínima necessária de bits (de acordo com seu tamanho)
![Page 38: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/38.jpg)
Como devem ser minhas chaves?
O que faz a tabela de símbolos crescer?
1. A quantidade de colunas
2. A quantidade de linhas não distintas
3. O tamanho dos valores/strings
![Page 39: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/39.jpg)
Como devem ser minhas chaves?
Concatenadas?
Hash?
USE CHAVES CONCATENADAS APENAS NO DESENVOLVIMENTO PARA FACILITAR
A VALIDAÇÃO DOS DADOS!
HASH DEVE SER CRIADO NA APLICAÇÃO FINAL.
![Page 40: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/40.jpg)
Sua aplicação esta lenta? (Qlik-Wait-View)
Sua aplicação faz o QvServer reiniciar?
Os dados estão errados e você não sabe como?
![Page 41: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/41.jpg)
1. Mantenha a Calma!
2. Remova colunas não utilizadas
5. Identifique e melhore expressões pesadas
8. Verifique o tipo de chaveamento
9. Campos distintos
10. Identifique variáveis iniciadas com o sinal de igual
3. Remova dimensões calculadas
4. Identifique melhorias de modelagem
6. Crie condicionais de cálculos/pré filtros.
7. Verifique o número de gráficos ativos na mesma tela
![Page 42: Qmeeting Pequenos_erros_grandes_problemas_Yuri](https://reader035.vdocuments.com.br/reader035/viewer/2022070606/58ae03ec1a28aba3178b46cb/html5/thumbnails/42.jpg)
Mas perai...Afinal, Macros são ruins?