Membros douglasfabiano Postado Abril 17 Membros Compartilhar Postado Abril 17 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 Membros Solução douglasfabiano Postado Abril 18 Autor Membros Solução Compartilhar Postado Abril 18 (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 por douglasfabiano Link para o comentário Compartilhar em outros sites More sharing options...
0 Membros Renato Carlos Rossato Postado Abril 17 Membros Compartilhar Postado Abril 17 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 Membros douglasfabiano Postado Abril 18 Autor Membros Compartilhar Postado Abril 18 (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 por douglasfabiano Link para o comentário Compartilhar em outros sites More sharing options...
0 Membros Michele Postado Abril 18 Membros Compartilhar Postado Abril 18 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 Membros Michele Postado Abril 19 Membros Compartilhar Postado Abril 19 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 Membros douglasfabiano Postado Abril 19 Autor Membros Compartilhar Postado Abril 19 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 Membros Bruno Abdalla de Souza Postado Abril 20 Membros Compartilhar Postado Abril 20 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 Membros Michele Postado Abril 20 Membros Compartilhar Postado Abril 20 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
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora