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

Dica de Desempenho servidor

Boa tarde, começo com a configuração do meu servidor:

Xeon 2.40GHz com 8 núcleos

32GB RAM

Server 2008

Tenho um projeto do qual contém mais ou menos 90 a 100 variáveis com cálculos dentro delas.

Por exemplo, na var_Venda eu tinha o codigo =sum(venda) agora eu alterei para sum(venda).

Nesta alteração eu retirei o sinal de igual, isto me permite utilizar a variável em um gráfico =($var_Venda), dessa forma consigo trabalhar com dimensões. A questão é que pela quantidade de cálculos que meu projeto faz, a cada seleção o processador da pico em 100% e fica até finalizar a seleção, da forma antiga o projeto era bem mais rápido, porém eu perco a facilidade de usar variáveis em gráficos.

O que me dizem a respeito disso? Será que é necessário um upgrade na máquina ou não devo me preocupar com isto?

Labels (3)
24 Replies
junior_ehlke
Creator III
Creator III
Author

Bom dia Fernando, realmente é isto mesmo que acontece, quando usado o sinal de Dolar o sistema refaz o cálculo para cada campo, no meu caso são vários pois eu montei um layout baseado em objeto texto (pelo menos 170). Por isto a impressão que demora mais para carregar na tela do usuário, porém analisando o ultimo gráfico, na média compensa esta utilização.

Agora eu fiz o teste em meu desktop comum como o Pablo sugeriu, um Core I5 com 4GB de RAM.

Por mais que nos gráficos digam que o projeto BETA foi mais rápido em cálculo na média, ficou impossível trabalhar, utilizou toda a memória da maquina e a cada seleção tive que esperar muito tempo até destravar, sendo que o ORIGINAL foi "navegável".

Tendo em vista que os gráficos contradizem a experiência do usuário pelo projeto, fica difícil fazer uma análise concreta, ao menos eu estou confuso entre os dados e a realidade.

Objeto Texto:

Objeto Texto 2.png

Variáveis:

variaveis 2.png

Média:

media media.png

pablolabbe
Luminary Alumni
Luminary Alumni

Você pode mandar um print da tela para termos um ideia do layout que está sendo calculado ?

junior_ehlke
Creator III
Creator III
Author

Boa tarde,

segue minha tela, não achei como fazer um resumo que fique visualmente agradável para o usuário se não usar os painéis de texto.

Dentro de cada um tem =$(=var_variavel) contendo uma série de cálculos em cada. O RESULTADO é a soma e subtração das variáveis. Antes de usar o sinal de Dolar, era impossível eu ter um gráfico de RESULTADO com a dimensão id_unidade, agora eu consigo colocar =$(=var_Resultado) e o sistema refaz todos os cálculos em cada posição.

print orcamento.png

pablolabbe
Luminary Alumni
Luminary Alumni

Hamilton,

   Avaliando melhor o seu caso, entendo que onde um objeto mostra valor únicos, isto é, não existe uma dimensão para iteração, usar o = dentro da variável não traz prejuízo ao resultado do cálculo e é até mais performático que não usar o =. Neste caso sugiro deixar o = dentro da variável.

  Como explicado anteriormente pelo Fernando Suzuki  você deve remover o =  quando usa a variável dentro de gráficos que contem dimensões, assim ele avalia a expressão a cada item das dimensões.

  Existe também uma questão de avaliar o desenho da aplicação pois 170 objetos em uma única aba é muita coisa. Vai demorar para calcular.  A prática é sempre minimizar o numero de objetos visíveis ao mesmo tempo.

Pablo Labbe

nicolett_yuri

Interessante os testes!

Tome sempre cuidado ao utilizar objeto de texto, na maioria dos casos a performance fica muito baixa. Quando crio uma tela de resultados, como a sua, tento resolver a maioria dos cálculos dentro do script da aplicação.

fosuzuki
Partner - Specialist III
Partner - Specialist III

Hamilton,

segue um link de um exemplo de Demonstrativo de Resultado, acho que é uma maneira elegante de fazer uma coisa similar. Fica a dica pra próxima...

How to Create a Profit and Loss Statement in QlikView

pablolabbe
Luminary Alumni
Luminary Alumni

As vezes, na tentativa de criar layouts semelhantes ao que o usuário tem em excel, acabamos criando complexidade no layout que impacta em manutenção e performance.

Em Qlikview menos é mais, então se você pre-calcular essas linhas em script melhor. Outra dica é simplificar o layout usando tabelas. Segue um exemplo de uma app que criei.

Tabelas Qlikview.PNG.png

  Aqui usei um truque, O quadro comparativo é formado por 1 tabelas simples. Configurei a apresentação da tabela como Horizontal, isto fez uma transposição colocando as expressões nas linhas. Cada linha é uma expressão e as coluna são 3 itens de uma dimensão virtual criada com valuelist:

Dimension

=ValueList('Tecnico','Executivo','Real')

E para cada expressão eu tenho a formula abaixo que usa uma expressão diferente conforme o item de dimensão:

pick(match(ValueList('Tecnico','Executivo','Real'),'Tecnico','Executivo','Real'),

$(vReceitaOperacionalT),

$(vReceitaOperacionalE),

$(vReceitaOperacionalR)

)

Com isso consegui criar uma tabela de comparação de resultados com um única objeto.

As tabelas acima relacionando % seguem o mesmo principio.

Abraço,

Pablo Labbe

junior_ehlke
Creator III
Creator III
Author

Pablo,

eu preciso calcular RECEITA LIQUIDA, MARGEM e RESULTADO por unidade, caso eu deixe o = dentro da variável eu perco esta funcionalidade.

Referente ao desenho, não consegui imaginar nada que fique agradável que não seja este formato, mesmo que eu coloque um gráfico do tipo Tabela, acredito que não vai ser amigável.

pablolabbe
Luminary Alumni
Luminary Alumni

E se deixar o = somente nestes 3 indicadores, já não resolve o seu problema ?

junior_ehlke
Creator III
Creator III
Author

Consegui resolver, Obrigado pela dica de Vocês..

Fiz a tabela como vocês sugeriram e ficou perfeito, visualmente agradável e com um bom desempenho.

As variáveis estão com o Dolar na frente e consigo criar dimensões para o Resultado como era o objetivo.

Abraço e obrigado pela ajuda.