Alunos douglasfabiano Postado Abril 17, 2023 Alunos Compartilhar Postado Abril 17, 2023 Boa tarde Pessoal, alguma dica do motivo de a opção ISBLANK deixa muito lento esse calculo? leva mais de 1min para carregar uma tabela simples, se retornar apenas ( vInadimplencia *-1), fica rápido (normal) Vlr. Inadimplência Pag. = VAR vInadimplencia = CALCULATE( SUM(fTitulosPagar[valor]), fTitulosPagar[status] <> "Pago", fTitulosPagar[PMA] > 0, USERELATIONSHIP(dCalendario[Data], fTitulosPagar[dataVencimento]) ) RETURN IF( ISBLANK(vInadimplencia), 0, vInadimplencia *-1 ) Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Solução douglasfabiano Postado Abril 18, 2023 Autor Alunos Solução Compartilhar Postado Abril 18, 2023 (editado) Pois melhorou um pouco, mas não o suficiente. estive verificando que o problema tbm está relacionado está a relação abaixo, mas ela não é bidirecional, quando removi esse relacionamento ficou instantâneo. Não é direct Query, pois nesse eu ja tive problema de lentidão, mas porque envolvia consultas grandes todas as vezes. USERELATIONSHIP(dCalendario[Data], fTitulosPagar[dataVencimento]) Editado Abril 18, 2023 por douglasfabiano Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Renato Carlos Rossato Postado Abril 17, 2023 Alunos Compartilhar Postado Abril 17, 2023 Olá @douglasfabiano, tenta assim: VAR vInadimplencia = CALCULATE( SUM(fTitulosPagar[valor]), fTitulosPagar[status] <> "Pago", fTitulosPagar[PMA] > 0, USERELATIONSHIP(dCalendario[Data], fTitulosPagar[dataVencimento]) ) RETURN IF( vInadimplencia, vInadimplencia *-1, 0 ) Espero ter ajudado. 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos douglasfabiano Postado Abril 18, 2023 Autor Alunos Compartilhar Postado Abril 18, 2023 (editado) bom dia, fiz o teste agora e continuou lento. e de certeza a lentidão esta no IF, pois se remove-lo e deixar apenas o calculate fica instantâneo a atualização dos visuais Assim Rápido vInadimplencia = CALCULATE( SUM(fTitulosPagar[valor]), fTitulosPagar[status] <> "Pago", fTitulosPagar[PMA] > 0, USERELATIONSHIP(dCalendario[Data], fTitulosPagar[dataVencimento]) ) Assim lento ou com isblank tbm Vlr. Inadimplência Pag. = VAR vInadimplencia = CALCULATE( SUM(fTitulosPagar[valor]), fTitulosPagar[status] <> "Pago", fTitulosPagar[PMA] > 0, USERELATIONSHIP(dCalendario[Data], fTitulosPagar[dataVencimento]) ) RETURN IF( vInadimplencia, vInadimplencia *-1,0 ) Editado Abril 18, 2023 por douglasfabiano Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Michele Postado Abril 18, 2023 Alunos Compartilhar Postado Abril 18, 2023 Olá @douglasfabiano! Se a sua necessidade for apenas mostrar 0 quando não tiver valor, para não ficar "branco" no cartão/visual, coloca sem o IF e um "+0" no final da sua medida. Olhando a sua medida não consigo saber o porque está lento, aparentemente não deveria, talvez seja algum relacionamento na modelagem como bidirecional, algo assim. De qualquer forma, se for apenas mostrar 0 acho que esse recurso lhe atende, é como fazemos aqui para não ficar validando se está branco. Vlr. Inadimplência Pag. = VAR vInadimplencia = CALCULATE( SUM(fTitulosPagar[valor]), fTitulosPagar[status] <> "Pago", fTitulosPagar[PMA] > 0, USERELATIONSHIP(dCalendario[Data], fTitulosPagar[dataVencimento]) ) RETURN vInadimplencia *-1 +0 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Michele Postado Abril 19, 2023 Alunos Compartilhar Postado Abril 19, 2023 Olá @douglasfabiano! Não faz muito sentido dar essa lentidão toda por causa disso, só se a sua Calendário está sendo montada de forma dinâmica e tem alguma data bem antiga em uma das suas tabelas, daí cria uma dimensão gigante. Outra possibilidade é você estar com a configuração de hierarquia automática de data, que cria uma dimensão calendário para cada campo de data das suas tabelas, essa é uma configuração que deve sempre ficar desligada para evitar esse problema. Essas duas situações que falei são coisas que o Leo sempre menciona quando fala de problemas de performance por causa de algo errado na ETL/modelagem. 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos douglasfabiano Postado Abril 19, 2023 Autor Alunos Compartilhar Postado Abril 19, 2023 Boa tarde Michele, tem como dar estrelinhas para a sua reposta? olha só eu sempre utilizo uma dCalendrio montada por mim, nesse utilizaram a opção CALENDARAUTO, e adivinha? um lançamento com data de 9202-01-01. Muito Obrigado mesmo, pois se nao fosse esse seu comentario meu feriado seria uma droga....heheheh dCalendario = CALENDARAUTO() 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Abril 20, 2023 Alunos Compartilhar Postado Abril 20, 2023 Tenta usar a função COALESCE ao invés do IF e veja se melhora a performance. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Michele Postado Abril 20, 2023 Alunos Compartilhar Postado Abril 20, 2023 Olá @douglasfabiano! Agora tudo faz mais sentido hahaha, porque sério, não fazia sentido o seu USERELATIONSHIP gerar lentidão, eu uso bastante também. Mas isso resolveu pra ti então? Se sim que ótimo, a situação está resolvida e isso é o que mais importa 😄 Sucesso!! Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
douglasfabiano
Boa tarde Pessoal, alguma dica do motivo de a opção ISBLANK deixa muito lento esse calculo?
leva mais de 1min para carregar uma tabela simples, se retornar apenas ( vInadimplencia *-1), fica rápido (normal)
Vlr. Inadimplência Pag. = VAR vInadimplencia = CALCULATE( SUM(fTitulosPagar[valor]), fTitulosPagar[status] <> "Pago", fTitulosPagar[PMA] > 0, USERELATIONSHIP(dCalendario[Data], fTitulosPagar[dataVencimento]) ) RETURN IF( ISBLANK(vInadimplencia), 0, vInadimplencia *-1 )
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora