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: 
Anonymous
Not applicable

Data Island otimizado

Estou muito empenhado em otimizar ao máximo um documento que tenho do QV, hoje li este post The Impact of Data Islands on Cache and CPU | Qlikview Cookbook

Como em uma aba eu uso um Data island eu fiquei preocupado quando ele disse que quando você faz uma seleção em uma lista que usa o data island todo o documento é recalculado, ele sugere usar uma variável para apenas ser recalculado o que estiver associado a essa variável ou usar um estado alternativo, esse estado alternativo eu já usei uma vez e não gostei muito porque os dados por algum motivo duplicaram, eu não pesquisei a causa disso mas a impressão que eu tenho é que ele faz uma copia dos dados que estão em estado alternativo pra esses dados não alterarem os que estão no outro estado.

Segue o trecho onde ele escreve isso:

"If your application is large enough that you consider this behavior to be a problem, a leaner alternative for the Currency example is to use a variable. When a variable changes, only objects that reference the variable get recalculated. Another great alternative is to put the Currency listbox in a different Alternate State."

Me interessei pelo método da variável, alguém já usou esse método com data island?

Labels (4)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Flavio, se tiver estado alternativo também é recalculado.   Abaixo uma pequena explanação. Coloquei uma imagem mostrando como fica os campos dentro do Qlik quando damos um LOAD.  E para cada campo teremos vetores com 4 possibilidades, como mostrado abaixo.

2016-12-04 19_02_52-Apresentação de slides do PowerPoint - [Apresentacao Completo.pptx].png

2016-12-04 19_03_33-Apresentação de slides do PowerPoint - [Apresentacao Completo.pptx].png

2016-12-04 19_03_56-Apresentação de slides do PowerPoint - [Apresentacao Completo.pptx].png

Mais informações podem ser obtidas aqui  (minhas fontes).....

Symbol Tables and Bit-Stuffed Pointers

Logical Inference and Aggregations

Colors, States and State vectors

The Calculation Engine

Sobre performance do seu modelo, se usar a variável ou o estado alternativo, pelo o que voce falou, esta somente em uma aba. Ao selecionarmos algo, o Logical inference "varre" todos os campos "ajustando" os vetores, para o "motor de calculo" fazer (nas variáveis,expressões,cores,condicional de mostrar ou não,...). Outras abas não serão recalculadas, nem objetos minimizados (a não ser que no titulo tenham expressão por exemplo).

Portanto se você estiver em outra aba, o fato de estar lento não sera em virtude do data island. Pode ser outros motivos.

- Chaves sintéticas

- AGGR nas expressões (se existe é para usarmos, mas com parcimônia.... )

- if nas expressões (usar set analysis por exemplo)

- expressões com 200 linhas, cheios de if.....

              if(Opcao=1, sum(A),

                if(Opcao=2, sum(B),

                   if(Opcao=3,sum(C),.....

       Sera calculado tudo e depois visto qual if mostrar.  O Qlik não é short circuit......

- variáveis em excesso sem uso (  dica do nicolett.yuri       ).  Todos são calculados....

- campos sem uso.....Ja vi modelos com tabela de 4 milhões de linhas que tinham esquecido e estava sem uso no modelo.....Ou seja, tomando tempo de carga e comendo RAM para nada.....

- Substituir  campos chaves compostos por autonumber.

- Tirar o time das datas (quando o campo data for datetime....) com floor()

- Se o modelo for muito grande, quem sabe encadear modelos....Assim, parte pode parar em uma analise macro e outros seguirem para o detalhe, por exemplo.

se ficar pensando vai vir mais alguma coisa........

furtado@farolbi.com.br

View solution in original post

5 Replies
Anonymous
Not applicable
Author

Acabei usando um estado alternativo no listbox que usa campos do dataisland, somente isso já basta para evitar esse recalculo do arquivo como ele cita na postagem? tenho dificuldade em saber qual a diferença de fazer dessa forma e com tudo no mesmo estado, não senti diferença de performance nesse computador, talvez no servidor faça diferença.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Flavio, se tiver estado alternativo também é recalculado.   Abaixo uma pequena explanação. Coloquei uma imagem mostrando como fica os campos dentro do Qlik quando damos um LOAD.  E para cada campo teremos vetores com 4 possibilidades, como mostrado abaixo.

2016-12-04 19_02_52-Apresentação de slides do PowerPoint - [Apresentacao Completo.pptx].png

2016-12-04 19_03_33-Apresentação de slides do PowerPoint - [Apresentacao Completo.pptx].png

2016-12-04 19_03_56-Apresentação de slides do PowerPoint - [Apresentacao Completo.pptx].png

Mais informações podem ser obtidas aqui  (minhas fontes).....

Symbol Tables and Bit-Stuffed Pointers

Logical Inference and Aggregations

Colors, States and State vectors

The Calculation Engine

Sobre performance do seu modelo, se usar a variável ou o estado alternativo, pelo o que voce falou, esta somente em uma aba. Ao selecionarmos algo, o Logical inference "varre" todos os campos "ajustando" os vetores, para o "motor de calculo" fazer (nas variáveis,expressões,cores,condicional de mostrar ou não,...). Outras abas não serão recalculadas, nem objetos minimizados (a não ser que no titulo tenham expressão por exemplo).

Portanto se você estiver em outra aba, o fato de estar lento não sera em virtude do data island. Pode ser outros motivos.

- Chaves sintéticas

- AGGR nas expressões (se existe é para usarmos, mas com parcimônia.... )

- if nas expressões (usar set analysis por exemplo)

- expressões com 200 linhas, cheios de if.....

              if(Opcao=1, sum(A),

                if(Opcao=2, sum(B),

                   if(Opcao=3,sum(C),.....

       Sera calculado tudo e depois visto qual if mostrar.  O Qlik não é short circuit......

- variáveis em excesso sem uso (  dica do nicolett.yuri       ).  Todos são calculados....

- campos sem uso.....Ja vi modelos com tabela de 4 milhões de linhas que tinham esquecido e estava sem uso no modelo.....Ou seja, tomando tempo de carga e comendo RAM para nada.....

- Substituir  campos chaves compostos por autonumber.

- Tirar o time das datas (quando o campo data for datetime....) com floor()

- Se o modelo for muito grande, quem sabe encadear modelos....Assim, parte pode parar em uma analise macro e outros seguirem para o detalhe, por exemplo.

se ficar pensando vai vir mais alguma coisa........

furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Importante salientar que isto era ate a versão 11.2.  Na versão 12, ainda não foi nada falado se esta igual ou o que esta diferente, visto que a versão 12 usa o motor do Sense.

furtado@farolbi.com.br
nicolett_yuri

Parabéns pela resposta afurtado

Anonymous
Not applicable
Author

Muito obrigado pela resposta Alessandro