DAX 公式重新計算疑難解答



每當工作簿的資料模型中發生更改時,Power Pivot 都會對現有資料進行分析,以確定是否需要重新計算,並以最有效的方式執行更新。

在重新計算 DAX 公式期間,Power Pivot 處理以下內容:

  • 依賴關係
  • 依賴列的重新計算順序
  • 事務
  • 易失函式的重新計算

依賴關係

當一個列依賴於另一個列,並且該另一個列的內容以任何方式更改時,所有相關列可能都需要重新計算。

Power Pivot 始終對錶執行完全重新計算,因為完全重新計算比檢查更改的值更有效。觸發重新計算的更改可能包括刪除列、更改列的數字資料型別或新增新列。這些更改被視為重大更改。但是,看似微不足道的更改,例如更改列的名稱,也可能觸發重新計算。這是因為列的名稱在 DAX 公式中用作識別符號。

在某些情況下,Power Pivot 可能會確定可以將列排除在重新計算之外。

依賴列的重新計算順序

依賴關係在任何重新計算之前都已計算。如果有多個列相互依賴,Power Pivot 會遵循依賴關係的順序。這確保了列以正確的順序以最大速度進行處理。

事務

重新計算或重新整理資料的操作作為事務進行。這意味著,如果重新整理操作的任何部分失敗,則其餘操作將回滾。這樣做是為了確保資料不會處於部分處理狀態。但是,您不能像在關係資料庫中那樣管理事務或建立檢查點。

易失函式的重新計算

NOW、RAND 或 TODAY 等 DAX 函式沒有固定值,被稱為易失函式。如果在計算列中使用此類 DAX 函式,則查詢或篩選的執行通常不會導致它們重新評估,以避免效能問題。

僅當整個列重新計算時,才會重新計算這些 DAX 函式的結果。這些情況包括從外部資料來源重新整理或手動編輯導致包含這些函式的 DAX 公式重新評估的資料。

但是,如果在計算欄位的定義中使用這些函式,則始終會重新計算這些函式。

廣告