Skip to main content
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.