Resolução de problemas de recálculo da fórmula DAX

Sempre que ocorrerem alterações no Modelo de Dados de sua pasta de trabalho, o Power Pivot executa uma análise dos dados existentes para determinar se o recálculo é necessário e executa a atualização da maneira mais eficiente possível.

O Power Pivot lida com o seguinte, durante o recálculo das fórmulas DAX -

  • Dependencies
  • Sequência de recálculo para colunas dependentes
  • Transactions
  • Recálculo de funções voláteis

Dependências

Quando uma coluna depende de outra coluna e o conteúdo dessa outra coluna muda de alguma forma, todas as colunas relacionadas podem precisar ser recalculadas.

O Power Pivot sempre executa um recálculo completo para uma tabela, porque um recálculo completo é mais eficiente do que verificar os valores alterados. As alterações que acionam o recálculo podem incluir a exclusão de uma coluna, a alteração do tipo de dados numéricos de uma coluna ou a adição de uma nova coluna. Essas mudanças são consideradas mudanças importantes. No entanto, alterações aparentemente triviais, como alterar o nome de uma coluna, também podem acionar o recálculo. Isso ocorre porque os nomes das colunas são usados ​​como identificadores nas fórmulas DAX.

Em alguns casos, o Power Pivot pode determinar que as colunas podem ser excluídas do recálculo.

Sequência de recálculo para colunas dependentes

As dependências são calculadas antes de qualquer recálculo. Se houver várias colunas que dependem umas das outras, o Power Pivot segue a sequência de dependências. Isso garante que as colunas sejam processadas na ordem certa na velocidade máxima.

Transações

As operações que recalculam ou atualizam os dados ocorrem como uma transação. Isso significa que, se qualquer parte da operação de atualização falhar, as operações restantes serão revertidas. Isso é para garantir que os dados não sejam deixados em um estado parcialmente processado. No entanto, você não pode gerenciar as transações como faz em um banco de dados relacional ou criar pontos de verificação.

Recálculo de funções voláteis

As funções DAX, como NOW, RAND ou TODAY, não têm valores fixos e são chamadas de funções voláteis. Se essas funções DAX forem usadas em uma coluna calculada, a execução de uma consulta ou filtragem geralmente não fará com que sejam reavaliadas para evitar problemas de desempenho.

Os resultados dessas funções DAX são recalculados apenas quando a coluna inteira é recalculada. Essas situações incluem atualização de uma fonte de dados externa ou edição manual de dados que causa a reavaliação das fórmulas DAX que contêm essas funções.

Porém, tais funções serão sempre recalculadas se as funções forem utilizadas na definição de um Campo Calculado.