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: 
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??

16 Replies
Not applicable
Author

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
Creator III
Creator III

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
Author

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
Creator III
Creator III

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
Author

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
Creator III
Creator III


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
Author

Dessa forma??

DESDE.jpg

rphpacheco
Creator III
Creator III

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
Author

Nunca utilizei GROUP BY..