Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

Performance

Boa tarde

Estou desenvolvendo uma aplicação num cliente onde compreenderá todas as análises do Orçamento hoje realizadas via excel pelo QlikView. Porém estou na 5ª aba, uma das mais complexas, onde tenho 3 containers, cada um com aprox 15 relatórios dinámicos, com fórmulas parecidas com essa:

(SUM({<ATIVO_SN={"S"}, PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"14"},CUSTO_C={"7253","7351","7352","7353","7354","7355","7803","7806","7813","7814","7806"}, CONTA_C={"*"}-{"3416"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"86"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7401","7402","7403","7404","7405","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"24"},CUSTO_C={"7406","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"50"},CUSTO_C={"7401","7402","7403","7404","7405","7406","7407","7408","7409","7410","7411","7412","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"91"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"72"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"73"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"12"},CUSTO_C={"7451","7803","7806","7813","7814"},CONTA_C={"*"}-{"3421"}>}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"69"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"84"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"85"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"}, CONTA_C={"3421"}>} VL_GASTOS_ORC))

/

(before(SUM({<ATIVO_SN={"S"}, PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"14"},CUSTO_C={"7253","7351","7352","7353","7354","7355","7803","7806","7813","7814","7806"}, CONTA_C={"*"}-{"3416"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"86"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7401","7402","7403","7404","7405","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"24"},CUSTO_C={"7406","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"50"},CUSTO_C={"7401","7402","7403","7404","7405","7406","7407","7408","7409","7410","7411","7412","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"91"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"72"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"73"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"12"},CUSTO_C={"7451","7803","7806","7813","7814"},CONTA_C={"*"}-{"3421"}>}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"69"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"84"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"85"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"}, CONTA_C={"3421"}>} VL_GASTOS_ORC)))-1


Essa é apenas uma de aprox 4 cada relatório.

Quando salvo o qvw, ela não abre mais essa aba, fica pensando ...

Alguem pode dar uma sugestão de como melhorar a performance? Crio variáveis para todas as expressões??

Tags (1)
16 Replies
Not applicable

Re: Performance

Fazer tudo na parte do Script. Evitar usar formulas muito complexas em expressões, que nem no seu caso. Eu estudaria essas condições e aplicaria tudo na parte do Script, assim na hora de aplicar as expressões não prejudicaria a performance do relatório

rphpacheco
Contributor III

Re: Performance

Concordo com o Leonardo.

Estou desenvolvendo a DRE por loja na empresa onde trabalho e uma das formas para contabilizar todas as contas foi passar todo o cálculo par o script de carga.

No meu caso criei tabelas agrupadas até o nível desejado e as expressões de cálculos utilizei na maioria das vezes o Sum(If()). Assim pude realizar os cálculos no script seguindo as regras que utilizaria no objeto com os Set Analysis.

Tente desta forma

Um abraço!

Not applicable

Re: Performance

Bom dia e obrigado pelo retorno. Pode me passar algum exemplo de como aplicar essas condições no script?

Nunca fiz isso .

Eu estava declarando todas as minhas formulas como variáveis no script,

SET R#Orçado_Geral=SUM({<MARCA_C={"*"}>}VL_RECEITAS_ORC);

segue abaixo um exemplo mais básico, se puder, retornem com um exemplo utilizando ele.

SUM({<UNIDADE_C={"*"}-{"18","40","11","60","61","27","74","75"},ATIVO_SN={"S"}>}VL_GASTOS_ORC)

Abraço

rphpacheco
Contributor III

Re: Performance

Um exemplo:

Sum(If(UNIDADE <> Match(UNIDADE,'18','40','11','60','61','27','74','75'),

     If(ATIVO_SN = 'S',

       VL_GASTOS_ORC

     )

)  

Abraço!

Not applicable

Re: Performance

Apenas incluir a expressão utilizando o IF no script? como faço para carregar este calculo no relatório depois?

Me desculpem a ignorância, é que estou desenvolvendo a pouco tempo..

rphpacheco
Contributor III

Re: Performance


Nomeia a expressão com o alias (as) e depois no objeto faça apenas um simples Sum().

Exemplo: Para o grupo de unidade ('18','40','11','60','61','27','74','75') eu posso nomear no script de carga como [Unidade 1].

Depois no objeto é só incluir um Sum([Unidade 1]).

Not applicable

Re: Performance

Dessa forma??

DESDE.jpg

rphpacheco
Contributor III

Re: Performance

Exatamente.

Mas não se esqueça de que deverás fazer um group by em sua tabela. Deste modo, inclua em seu agrupamento apenas os campos que serão utilizados.

Not applicable

Re: Performance

Nunca utilizei GROUP BY..