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

Melhoria de Performance QVW

Tenho um aplicativo em QVW onde tenho vários indicadores que possuem metricas diferentes de acordo com um filtro selecionado, como são muitos dados a aplicação acaba demorando muito para calcular os valores. Qual a melhor maneira de melhorar a performance da aplicação.

Basicamente estou usando um IF na expressão através do filtro Cod_Companhia 

Seguem alguns exemplos das fórmulas de 3 indicadores.

Indicador 1 - INDENIZAÇÕES

=
IF(Cod_Companhia = '1024',
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT92','AT95'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
,
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT92','AT95'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
))

 

INDICADOR 2 - VARIAÇÃO DAS PROVISÕES:
=Round(
IF(Cod_Companhia = '1024',
(
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'A'},
Provisao_Valida={'Y'}
>}
Valor_Provisao_Liquido_Cosseguro
)
-
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT90','AT91','AT92','AT95','AT96','AT100'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'M'},
Provisao_Valida={'Y'}
>}
Valor_Movimento_Provisoes
)
)
,
(
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'A'},
Provisao_Valida={'Y'}
>}
Valor_Provisao_Liquido_Cosseguro
)
-
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT90','AT91','AT92','AT95','AT96','AT100'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'M'},
Provisao_Valida={'Y'}
>}
Valor_Movimento_Provisoes
)
)
),0.01)

 

INDICADOR 3 - CUSTO DO PERÍODO:

=
IF(Cod_Companhia = '1024',
(
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'A'},
Provisao_Valida={'Y'}
>}
Valor_Provisao_Liquido_Cosseguro
)
-
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AT50','AT51','AT52','AT55','AT56','AT57','AT58','AU50','AU51','AU52','AU55','AU56','AU60','RI', 'RD'},
Cod_Despesa_Pagmto={'*'}-{'AT92','AT95'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
Pagamento_Abater_Provisoes={'N'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT90','AT91','AT92','AT95','AT96','AT100'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'N'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'AT90','AT91','AT96','AT100'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'M'},
Provisao_Valida={'Y'}
>}
Valor_Movimento_Provisoes
)
)
,
(
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'A'},
Provisao_Valida={'Y'}
>}
Valor_Provisao_Liquido_Cosseguro
)
-
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AT50','AT51','AT52','AT55','AT56','AT57','AT58','AU50','AU51','AU52','AU55','AU56','AU60','RI', 'RD'},
Cod_Despesa_Pagmto={'*'}-{'AT92','AT95'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
Pagamento_Abater_Provisoes={'N'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT90','AT91','AT92','AT95','AT96','AT100'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'N'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'AT90','AT91','AT96','AT100'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'M'},
Provisao_Valida={'Y'}
>}
Valor_Movimento_Provisoes
)
))

1 Solution

Accepted Solutions
mrtinsjoao
Contributor III
Contributor III

Ola, Boa tarde,
Para melhorar a performance, faz toda a logica no script e não no Set analisys, vai melhorar muito a performance.
Abraço

View solution in original post

1 Reply
mrtinsjoao
Contributor III
Contributor III

Ola, Boa tarde,
Para melhorar a performance, faz toda a logica no script e não no Set analisys, vai melhorar muito a performance.
Abraço