Dépannage du recalcul de formule DAX

Chaque fois que des modifications se produisent dans le modèle de données de votre classeur, Power Pivot effectue une analyse des données existantes pour déterminer si un recalcul est requis et effectue la mise à jour de la manière la plus efficace possible.

Power Pivot gère les éléments suivants, lors du recalcul des formules DAX -

  • Dependencies
  • Séquence de recalcul pour les colonnes dépendantes
  • Transactions
  • Recalcul des fonctions volatiles

Dépendances

Lorsqu'une colonne dépend d'une autre colonne et que le contenu de cette autre colonne change de quelque manière que ce soit, toutes les colonnes associées peuvent devoir être recalculées.

Power Pivot effectue toujours un recalcul complet pour une table, car un recalcul complet est plus efficace que la vérification des valeurs modifiées. Les modifications qui déclenchent le recalcul peuvent inclure la suppression d'une colonne, la modification du type de données numériques d'une colonne ou l'ajout d'une nouvelle colonne. Ces changements sont considérés comme des changements majeurs. Cependant, des modifications apparemment insignifiantes, telles que la modification du nom d'une colonne, peuvent également déclencher un recalcul. Cela est dû au fait que les noms des colonnes sont utilisés comme identificateurs dans les formules DAX.

Dans certains cas, Power Pivot peut déterminer que les colonnes peuvent être exclues du recalcul.

Séquence de recalcul pour les colonnes dépendantes

Les dépendances sont calculées avant tout recalcul. S'il existe plusieurs colonnes qui dépendent les unes des autres, Power Pivot suit la séquence des dépendances. Cela garantit que les colonnes sont traitées dans le bon ordre à la vitesse maximale.

Transactions

Les opérations qui recalculent ou actualisent les données ont lieu en tant que transaction. Cela signifie que si une partie de l'opération d'actualisation échoue, les opérations restantes sont annulées. Cela permet de garantir que les données ne sont pas laissées dans un état partiellement traité. Cependant, vous ne pouvez pas gérer les transactions comme vous le faites dans une base de données relationnelle ou créer des points de contrôle.

Recalcul des fonctions volatiles

Les fonctions DAX telles que NOW, RAND ou TODAY n'ont pas de valeurs fixes et sont appelées fonctions volatiles. Si de telles fonctions DAX sont utilisées dans une colonne calculée, l'exécution d'une requête ou d'un filtrage n'entraînera généralement pas leur réévaluation pour éviter des problèmes de performances.

Les résultats de ces fonctions DAX ne sont recalculés que lorsque la colonne entière est recalculée. Ces situations incluent l'actualisation à partir d'une source de données externe ou la modification manuelle des données qui entraîne la réévaluation des formules DAX qui contiennent ces fonctions.

Cependant, ces fonctions seront toujours recalculées si les fonctions sont utilisées dans la définition d'un champ calculé.