檢閱量值、關聯性和視覺效果的效能

已完成

如果資料模型具有多個資料表、複雜的關聯性、精密的計算、多個視覺效果,以及多餘的資料,即可能會導致報表效能不佳。 糟糕的報表效能會影響使用者體驗。

影響報表效能的因素螢幕擷取畫面。

若要最佳化效能,則必須先找出問題的來源:換句話說,必須找出報表和資料模型中的哪些元素會造成效能問題。 在這之後,即可採取動作來解決這些問題,進而改善效能。

識別報表效能瓶頸

若要在報表中達到最佳效能,您必須建立能夠快速執行查詢和量值的高效資料模型。 當有良好的基礎後,即可藉由分析查詢計畫和相依性,然後進行變更以進一步最佳化效能,以改善模型。

您應該檢閱資料模型中的量值和查詢,以確保正在使用最有效率的方式來取得所要結果。 起點應該是找出存在於程式碼中的瓶頸。 當找出資料模型中最慢的查詢後,即可先專注於最大的瓶頸,再建立優先順序清單來依序解決其他問題。

分析效能

您可使用 Power BI Desktop 中的 [效能分析器],以協助了解每個報表元素在使用者與其互動時的執行效率。 例如,您可判斷特定視覺效果由使用者互動啟動後需要多少時間才會重新整理。 [效能分析器] 可協助找出造成效能問題的元素,這對於在進行疑難排解時相當有幫助。

在執行 [效能分析器] 之前,為了確保在分析 (測試) 中取得最正確的結果,請確定您是從清晰的視覺效果快取和資料引擎快取開始。

  • 視覺效果快取 - 當載入視覺效果時,必須關閉 Power BI Desktop 然後再次開啟,才能清除此視覺效果快取。 您必須使用全新的視覺效果快取來開始分析,以避免產生任何快取。

    為確保具有清晰的視覺效果快取,請將空白頁面新增至 Power BI Desktop (.pbix) 檔案,然後在選取該頁面的情況下,儲存並關閉檔案。 重新開啟想要分析的 Power BI Desktop (.pbix) 檔案。 該檔案隨即會在空白頁面上開啟。

  • 資料引擎快取 - 執行查詢時,由於會快取結果,因此分析結果將會產生誤導。 您必須先清除資料快取,才能重新執行視覺效果。

    若要清除資料快取,您可重新啟動 Power BI Desktop 或將 DAX Studio 連線到資料模型,然後呼叫 [清除快取]。

當清除快取並在空白頁面上開啟 Power BI Desktop 檔案後,請前往 [檢視] 索引標籤,然後選取 [效能分析器] 選項。

若要開始分析流程,選取 [開始錄製]、選取想要分析的報表頁面,然後與所要測量的報表元素互動。 您會在互動期間,看到結果顯示在 [效能分析器] 窗格中。 完成後,選取 [停止] 按鈕。

效能分析器開始畫面的螢幕擷取畫面。

如需詳細資訊,請參閱使用效能分析程式檢查報表元素效能

檢閱結果

您可在 [效能分析器] 窗格中檢閱效能測試的結果。 若要依照持續時間的順序來檢閱工作 (最長到最短),請以滑鼠右鍵按一下 [持續時間 (毫秒)] 欄位標題旁的 排序 圖示,然後選取 [遞減] 順序中的 [總時間]。

顯示如何在分析器中排序結果的螢幕擷取畫面。

每個視覺效果其記錄資訊會顯示其花費了多少時間 (持續時間) 來完成下列類別的工作:

  • DAX 查詢 - 視覺效果傳送查詢所花費的時間,以及 Analysis Services 傳回結果所花費的時間。

  • 視覺效果顯示 - 視覺效果呈現在螢幕上所花費的時間,包括擷取 Web 影像或地理編碼所需的時間。

  • 其他 - 視覺效果準備查詢、等候其他視覺效果完成,或執行其他背景處理工作所需的時間。 如果此類別顯示出較長持續時間,則要縮短持續時間的唯一實際方式是,最佳化其他視覺效果的 DAX 查詢或減少報表中視覺效果數目。

效能分析器結果中的類別螢幕擷取畫面。

分析測試的結果可協助了解資料模型行為,並找出需要最佳化的元素。 您可比較報表中每個元素的持續時間,然後找出持續時間較長的元素。 您應該將焦點放在這些元素上,並查明為什麼這些元素要花費很長的時間才能載入報表頁面。

若要更詳細地分析查詢,您可使用 DAX Studio,這是由另一項服務所提供的免費開放原始碼工具。

解決問題並最佳化效能

分析結果會找出需要改善的範圍,以將效能最佳化。 您可能會發現需要對視覺效果、DAX 查詢或資料模型中的其他元素執行改善。 下列資訊提供指引來協助尋找內容,以及可進行的變更。

視覺效果

如果發現視覺效果是導致效能不佳的問題來源,則需要找出改善效能的方法,並盡可能地減少對使用者體驗的影響。

請考慮報表頁面上的視覺效果數目,視覺效果越少表示效能越佳。 仔細思考某個視覺效果是否為必要,且其是否確實為使用者提供價值。 如果答案為否,您就應該移除該視覺效果。 比起在頁面上使用多個視覺效果,請考慮其他能夠提供詳細資料的方式,例如 [鑽研] 頁面和 [報表頁面工具提示]。

檢查每個視覺效果中的欄位數目。 報表視覺效果越多,就越容易發生效能問題。 此外,視覺效果越多,會讓報表變得擁擠而失去重點。 視覺效果的上限為 100 個欄位 (量值或資料行),因此,超過 100 個欄位的視覺效果載入速度會很慢。 仔細思考視覺效果是否真的需要這些資料。 您可能會發現其實可減少目前使用的欄位數目。

DAX 查詢

當檢查 [效能分析器] 窗格中的結果時,即可看到 Power BI Desktop 引擎評估每個查詢所花費的時間 (以毫秒為單位)。 一般而言,所有的 DAX 查詢都會超過 120 毫秒。 在本範例中,您會找出某個持續時間很長的特定查詢。

效能分析器中持續時間很長的範例螢幕擷取畫面。

[效能分析器] 會醒目提示潛在的問題,但不會告知需要採取哪些動作來改善。 您可能想要進一步查明為何處理此量值需要這麼久的時間。 您可使用 DAX Studio 更詳細地調查查詢。

例如,選取 [複製查詢] 將計算公式複製到剪貼簿,然後貼上至 Dax Studio。 然後,即可更詳細地檢閱計算步驟。 在本範例中,您會嘗試計算訂單數量大於或等於 5 的產品總數。

Count Customers =
CALCULATE (
    DISTINCTCOUNT ( Order[ProductID] ),
    FILTER ( Order, Order[OrderQty] >= 5 )
)

分析查詢之後,即可使用自己的知識和體驗來找出效能問題。 您也可以嘗試不同的 DAX 函式是否能改善效能。 在下列範例中,FILTER 函式已由 KEEPFILTER 函式取代。 當在 [效能分析器] 中再次執行測試時,由於使用了 KEEPFILTER 函式,因此持續時間較短。

Count Customers =
CALCULATE (
    DISTINCTCOUNT ( Order[ProductID] ),
    KEEPFILTERS (Order[OrderQty] >= 5 )
)

在此情況下,您可使用 KEEPFILTER 函式來取代 FILTER 函式,以大幅減少此查詢的評估時間。 當進行此變更時,若要檢查持續時間是否已改善,請清除資料快取,然後重新執行 [效能分析器] 程序。

效能分析器中持續時間很短的範例螢幕擷取畫面。

資料模型

如果量值和視覺效果持續時間顯示較低的值 (即持續時間很短),則量值和視覺效果就不是造成效能問題的原因。 相反地,如果 DAX 查詢顯示較高的持續時間值,這表示量值的寫入方式可能不佳,或資料模型發生問題。 此問題可能是由模型中的關聯性、資料行或中繼資料,或可能是 [自動日期/時間] 選項的狀態所造成,如下一章節中所述。

關聯性

您應該檢查資料表之間的關聯性,以確保已建立正確的關聯性。 檢查是否已正確設定關聯性基數屬性。 例如,包含唯一值的單一端資料行可能不正確地設定為多端資料行。 您在稍後的課程模組中將會深入了解基數如何影響效能。

資料行

最佳做法是避免匯入不需要的資料行。 若要避免在 Power Query 編輯器中刪除資料行,您應該在將資料載入 Power BI Desktop 時,嘗試在來源處理這些資料行。 不過,如果無法從來源查詢中移除多餘的資料行,或已經以原始狀態匯入資料,則仍然可使用 Power Query 編輯器來檢查每個資料行。 仔細思考您是否真的需要這些資料行,試著找出每個資料行能夠為資料模型所帶來的實際效益。 如果您發現某個資料行沒有任何價值,則應該將該資料行從資料模型中移除。 例如,假設您有一個識別碼資料行,其包含數千個唯一資料列。 您知道不會在關聯性中使用這個特定資料行,所以該資料行不會出現在報表中。 因此,您應該將其視為不必要的資料行,並承認該資料行會浪費資料模型的空間。

當移除不必要的資料行時,也會減少資料模型的大小,進而產生較小的檔案,並縮短重新整理的時間。 此外,由於資料集只包含相關資料,所以也會改善整體報表的效能。

如需詳細資訊,請參閱匯入模型的資料減少技術

中繼資料

中繼資料是其他資料的相關資訊。 Power BI 中繼資料會包含資料模型的相關資訊,例如每個資料行的名稱、資料類型和格式、資料庫的結構描述、報表設計、上次修改檔案的時間、資料重新整理的速率等。

當將資料載入至 Power BI Desktop 時,建議分析對應的中繼資料,以在開始建置報表之前,找出資料集中所有不一致之處並將資料正規化。 分析中繼資料可改善資料模型的效能,因為藉由分析中繼資料,您可找出不必要的資料行、資料內的錯誤、不正確的資料類型、要載入的資料量 (包含交易式資料或歷程資料的大型資料集,需要較長的時間才能載入) 等。

您可使用 Power BI Desktop 中的 Power Query 編輯器來檢查原始資料的資料行、資料列和值。 接著,您可使用可用的工具 (例如在下列螢幕擷取畫面中醒目提示的工具) 來進行必要變更。

查詢編輯器首頁索引標籤選項的螢幕擷取畫面。

Power Query 選項包括:

  • 不必要的資料行 - 評估每個資料行的必要性。 如果一或多個資料行不會出現在報表中 (即非必要),則應該使用 [首頁] 索引標籤上的 [移除資料行] 選項予以移除。

  • 不必要的資料列 - 檢查資料集中的前幾個資料列以查看其是否為空白,或是否包含報表中不需要的資料;若是如此,則會使用 [首頁] 索引標籤上的 [移除資料列] 選項予以移除。

  • 資料類型 - 評估資料行資料類型,以確保每個資料類型都是正確的。 如果發現資料類型不正確,請選取該資料行,在 [轉換] 索引標籤上選取 [資料類型],然後從清單中選取正確的資料類型來予以變更。

  • 查詢名稱 - 檢查 [查詢] 窗格中的查詢 (資料表) 名稱。 如同資料行標題名稱,您應該將不尋常或無用的查詢名稱變更為較明顯或使用者所熟悉名稱。 您可滑鼠右鍵按一下該查詢來選取 [重新命名],視需要編輯名稱,然後按 Enter 即可重新命名。

  • 資料行詳細資料 - Power Query 編輯器具有下列三個資料預覽選項,其可供用來分析與資料行建立關聯的中繼資料。 您可在 [檢視] 索引標籤上找到這些選項,如下列螢幕擷取畫面所示。

    • 資料行品質 - 判斷資料行中元素的有效、錯誤以及空白百分比。 如果有效的百分比不是 100,則應該查明原因、更正錯誤,或填入空白值。

    • 資料行散發 - 辨識您擁有多少個不同的元素,以及有多少元素是唯一的。 當想要辨識資料行的基數時,這項資訊會很有幫助。 您將在本課程模組稍後進一步調查。

    • 資料行設定檔 - 顯示欄位的更多統計資料,以及顯示唯一項目分佈的圖表。

資料行設定檔選項的螢幕擷取畫面。

注意

如果正在檢閱具有超過 1,000 個資料列的大型資料集,且希望分析整個資料集,則需要在視窗底部變更預設選項。 選取 [依前 1000 個資料列進行的資料行分析] > [根據整個資料集進行的資料行分析]。

資料行設定檔資料列的螢幕擷取畫面。

您所應考量其他中繼資料是整個資料模型的相關資訊,例如檔案大小和資料重新整理速率。 您可在相關聯的 Power BI Desktop (.pbix) 檔案中找到此中繼資料。 VertiPaq 儲存引擎會壓縮載入至 Power BI Desktop 的資料,並將其儲存至磁碟。 資料模型大小會直接對其效能造成影響;大小較小的資料模型會使用較少資源 (記憶體),且可更快速地進行資料重新整理、計算,以及轉譯報表中的視覺效果。

自動日期/時間功能

將效能進行最佳化時,應考量的另一個項目是 Power BI Desktop 中的 [自動日期/時間] 選項。 根據預設,這項功能會在全域啟用,這表示 Power BI Desktop 會在符合特定條件時自動為每個日期資料行建立隱藏的計算資料表。 新的隱藏資料表,是資料集中現有資料表以外的補充。

[自動日期/時間] 選項可供在篩選、分組及向下切入行事歷時間週期時使用時間智慧。 我們建議僅在使用行事歷時間週期,以及當需要與時間相關的簡單模型時,才將 [自動日期/時間] 選項保留為啟用。

如果資料來源已經定義了日期維度資料表,則該資料表應該用來一致定義組織內的時間,且應該停用全域的 [自動日期/時間] 選項。 停用此選項可降低資料模型大小,並縮短重新整理的時間。

您可在全域啟用/停用此 [自動日期/時間] 選項,使其套用於所有 Power BI Desktop 檔案,或者您也可以啟用或停用目前檔案的選項,使其僅套用於個別檔案。

若要啟用或停用此 [自動日期/時間] 選項,請前往 [檔案] > [選項和設定] > [選項],然後選取 [全域] 或 [目前的檔案] 頁面。 在任一頁面上選取 [資料載入],然後依需要在 [時間智慧] 區段中選取或清除核取方塊。

螢幕擷取畫面顯示如何設定自動日期時間。

如需 自動日期/時間 功能的概觀和一般簡介,請參閱 在 Power BI Desktop 中套用自動日期/時間