Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
luis_lorenzo
Contributor III
Contributor III

Como melhorar performance de uma aplicação QV

Boa Tarde Galera,

Estou com problema de lentidão na visualização dos meus dados, o que acontece:

- Gerei meus GVD's, em seguida criei uma qvw onde tenho minha aplicação rodando buscando as informações dos meus QVD's. Porém quando efetuo uma analise, a aplicação demora muito tempo para retornar algumas informações especificas.

- Verifiquei que tenho outra aplicação feito por outra pessoal com  ligações bem próximas a minha, sendo que roda muito bem.

se conseguirem me dar uma luz alguma coisa, agradeço muito.

Já juntei tabelas, já separei e a mesma coisa.

Meu Servidor não é pois tem 16GB de memória

Estou colocando o modelo a disposição.

modelo_qvw.jpg

A disposição.

1 Solution

Accepted Solutions
nicolett_yuri

Luis, primeiro passo é remover a sua Data Island.

Em outras palavras: Você mantém a sua tabela de Calendário isolada do modelo e faz o Link dos dados através de um IF na expressão, isso causa MUITA perda de performance em sua aplicação.

A sua tabela de Calendário este estar ligada ao seu modelo de dados.

View solution in original post

7 Replies
nicolett_yuri

Luis, existem vários pontos a serem considerados na performance da sua aplicação:

  • Capacidade de seu hardware
  • Estrutura de seu ambiente de server (Dedicado ou não // cluster ou não // Publisher separado ou não....etc)
  • Quantidade de usuários que acessam o seu painel
  • Volumetria de dados
  • Modelagem
  • Quantidade de objetos sendo calculados (mesma tela)
  • Dimensões calculadas
  • Expressões complexas
  • Extensions
  • Condições de cálculo

Na imagem que você enviou, a única resposta que posso te dar é que seu modelo de dados é SnowFlake, este que pode não ser a melhor opção para uma aplicação BI (Por que? Precisaria entender ligação a ligação, volumetria de cada tabela e a utilização de cada tabela e cada campo em seus objetos).

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Luis,  qual a quantidade de registros (CTRL ALT D  Tabelas) das duas aplicações (a quantidade maior de cada modelo, do que roda bem e do que roda mal....).

Tens como mandar uma expressão de algum objeto que esta lento?

O Calendário (que não esta ligado a nenhuma tabela - ilha de dados) é usado como filtro de período e nas expressões usa-se if?

Existem muitas coisas que podem melhorar o desempenho (autonumber / floor nas datas / numeros distintos / campos usados ou não.... ), modelagem (embora aqui depende da qtde registros das tabelas.....) e algumas coisas que podem prejudicar (aggr / expressoes com if dentro e fora - set analisys - short circuit) etc....

Tudo depende.....

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

Segue um post sobre uma discussão sobre modelagem....(sobre star / snowflake....esta nos comentarios.....)

Usar ou não o CONCATENATE???

furtado@farolbi.com.br
luis_lorenzo
Contributor III
Contributor III
Author

Bom dia,

Vamos la uma expressão que tenho é:

- count(distinct If([Dt. Entrada Atendimento] = [Data Completa], [Nr. Atendimento], null())) conforme pode ver no calendário uso o If. Assim como na outra aplicação que temos.

Quantidade de registros em torno de 3350000.

Retirei algumas tabelas da minha aplicação para realizar teste e mesmo assim continua muito lento ainda.

Novo_modelo_teste.jpg

A disposição,

paulovendruscol
Creator
Creator

Luis,

Sugiro fazer o teste abaixo:

Criar um novo QVW (sem gráficos) com o seu modelo de dados que está apresentando lentidão e simular alguns filtros, com isso você consegue "identificar" se o seu modelo de dados está consumindo muito processamento/memória e etc

nicolett_yuri

Luis, primeiro passo é remover a sua Data Island.

Em outras palavras: Você mantém a sua tabela de Calendário isolada do modelo e faz o Link dos dados através de um IF na expressão, isso causa MUITA perda de performance em sua aplicação.

A sua tabela de Calendário este estar ligada ao seu modelo de dados.

luis_lorenzo
Contributor III
Contributor III
Author

Perfeito Yuri, concordo com você e com todo mundo que disse para cuidar ou tirar o IF.

Agora levamos em consideração a primeira imagem com a estrutura que tenho, quero pegar uma data selecionada e conseguir ver informações de Atendimentos (Nr. Atendimento) e tenho uma aba dentro do Qlik que trava de Agendas onde consigo ver tudo relacionado as minhas Agendas neste momento preciso que minha data selecionada não leve em consideração a Dt. Entrada da Tabela Atendimento_Paciente por exemplo, preciso comparar minha data selecionada com a Dt. Agenda da tabela da Agenda_Dados.

Faço isso por que quero e preciso usar a mesma aplicação, caso contrario, já teria criado outra aplicação para isso.

A disposição e agradeço a ajuda de todos.