審查措施、關係和視覺效果的表現

已完成

如果您的語義模型具有多個表、複雜的關係、複雜的計算、多個視覺效果或冗餘數據,則可能會導致報告效能不佳。 報告效能不佳會導致負面的使用者體驗。

要優化效能,首先必須確定問題出在哪裡;換句話說,找出報告和語義模型的哪些元素導致了效能問題。 之後,您可以採取措施解決這些問題,從而提高效能。

識別報告效能瓶頸

為了在報表中實現最佳效能,您需要建立一個具有快速運行的查詢和度量的高效語意模型。 當您擁有良好的基礎時,您可以透過分析查詢計劃和依賴關係來進一步改進模型,然後進行更改以進一步優化效能。

您應該檢查語義模型中的度量和查詢,以確保您使用最有效的方法來獲得所需的結果。 您的起始指向 應該是識別程式碼中存在的瓶頸。 當您確定語義模型中最慢的查詢時,您可以先專注於最大的瓶頸,並建立優先清單來解決其他問題。

分析效能

您可以使用 中的 效能分析器 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 傳回結果所花費的時間。

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

  • 其他 - 視覺物件準備查詢、等待其他視覺物件完成或執行其他後台處理任務所花費的時間。 如果此類別顯示的持續時間較長,則減少此持續時間的唯一真正方法是優化其他視覺物件的 DAX 查詢,或減少報表中的視覺物件數量。

分析測試的結果可幫助您了解語意模型的行為並確定需要最佳化的元素。 您可以比較報告中每個元素的持續時間並識別持續時間較長的元素。 您應該關注這些元素並調查為什麼它們需要這麼長時間才能加載到報告頁面上。

若要更詳細分析查詢,您可以使用 DAX Studio,這是由其他服務提供的免費開源工具。

解決問題並優化效能

分析結果將確定需要改進的領域和性能優化的機會。 您可能會發現需要對視覺效果、DAX 查詢或語意模型中的其他元素進行改進。 以下資訊提供了有關要查找的內容和可以進行的更改的指導。

視覺效果

如果您認為視覺效果是導致效能不佳的瓶頸,那麼您應該找到一種方法來提高效能,同時對使用者體驗的影響最小。

考慮報告頁面上的視覺效果數量;更少的視覺效果意味著更好的性能。 問問自己視覺是否真的有必要,以及它是否為最終用戶增加了價值。 如果答案是否定的,您應該刪除該視覺效果。 不要在頁面上使用多個視覺效果,而是考慮其他方式來提供其他詳細信息,例如鑽取頁面和報告頁面工具提示。

檢查每個視覺物件中的欄位數量。 報告上的視覺效果越多,出現效能問題的可能性就越大。 此外,視覺效果越多,報告就越顯得擁擠且不清晰。 視覺物件的上限為 100 個欄位(度量或列),因此超過 100 個欄位的視覺物件載入速度會很慢。 問問自己是否真的需要視覺中的所有這些數據。 您可能會發現可以減少目前使用的欄位數量。

DAX 查詢

當您檢查 效能分析器 窗格中的結果時,您可以看到 Power BI Desktop 引擎評估每個查詢所花費的時間(以毫秒為單位)。 任何耗時超過 120 毫秒的 DAX 查詢都是一個很好的起點 指向。 在此範例中,您確定了一個持續時間較長的特定查詢。

效能分析器 突顯潛在問題,但不會告訴您需要完成 進行哪些改進。 您可能需要進一步調查為什麼此措施需要如此長時間才能處理。 您可以使用 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 )
)

在這種情況下,您可以將 FILTER 函數替換為 KEEPFILTER 函數,以顯著縮短該查詢的評估持續時間。 進行此變更時,若要檢查持續時間是否有所改善,請清除資料緩存,然後重新執行 效能分析器 進程。

語意模型

如果度量和視覺效果的持續時間顯示較低的值(換句話說,它們的持續時間很短),則它們不是效能問題的原因。 相反,如果 DAX 查詢顯示較高的持續時間值,則可能是度量值編寫不當或語義模型出現問題。 該問題可能是由模型中的關係、列或元資料引起的,也可能是 自動日期/時間 選項的狀態引起的,如下所述部分。

人際關係

您應該檢查表之間的關係以確保已建立正確的關係。 檢查關係基數屬性是否正確配置。 例如,包含唯一值的單側欄位可能會被錯誤地配置為多側列。 您將在本模組後面詳細了解基數如何影響效能。

最佳實踐是不要匯入不需要的資料列。 為了避免刪除 Power Query 編輯器中的列,您應該在將資料載入到 Power BI Desktop時嘗試在來源處處理它們。 但是,如果無法從來源查詢中刪除冗餘列,或者資料已以其原始狀態匯入,則您始終可以使用 Power Query 編輯器檢查每一列。 問問自己是否真的需要每一列,並嘗試確定每一列為您的語義模型添加的好處。 如果您發現某列沒有增加任何價值,則應該將其從語義模型中刪除。 例如,假設您有一個包含數千個唯一行的 ID 欄位。 您知道您不會在關係中使用此特定列,因此它不會在報表中使用。 因此,您應該認為此列是不必要的,並承認它浪費了語義模型中的空間。

當您刪除不必要的列時,您將減少語義模型的大小,從而導致更小的檔案大小和更快的刷新時間。 此外,由於語意模型僅包含相關數據,因此整體報告效能將會提高。

有關詳細信息,請參閱 導入建模的資料縮減技術

中繼資料

元資料是有關其他資料的資訊。 Power BI 元資料包含有關語義模型的信息,例如每列的名稱、資料類型和格式、資料庫架構、報表設計、檔案上次修改時間、資料刷新率等等。

當您將資料載入到 Power BI Desktop,分析相應的元資料是一種很好的做法,以便您可以在開始建立報告之前識別與語義模型的任何不一致之處並標準化資料。 對元資料進行分析將提高語義模型效能,因為在分析元資料時,您將識別不必要的資料列、資料中的錯誤、不正確的資料類型、正在載入的資料量(大型語義模型,包括交易或歷史資料)載入時間更長)等等。

您可以使用 Power Query 編輯於 Power BI Desktop 檢查原始資料的列、行和值。 然後,您可以使用可用的工具(例如以下螢幕截圖中突出顯示的工具)進行必要的更改。

這 Power Query 選項包括:

  • 不必要的列 - 評估每列的需求。 如果報告中不會使用一列或多列,因此沒有必要,您應該使用 刪除列 上的選項 標籤。

  • 不必要的行 - 檢查語意模型中的前幾行,看看它們是否為空,或是否包含報告中不需要的資料;如果是這樣,它會使用以下方法刪除這些行 刪除行 上的選項 標籤。

  • 資料類型 - 評估列資料類型以確保每個資料類型都是正確的。 如果您發現資料類型不正確,請選擇該列,然後在 轉換 上選擇 資料類型 來變更它,然後從清單中選擇正確的資料類型。

  • 查詢名稱 - 檢查 查詢 窗格中的查詢(表)名稱。 就像您對列標題名稱所做的那樣,您應該將不常見或無用的查詢名稱變更為更明顯的名稱或使用者更熟悉的名稱。 您可以重新命名查詢,方法是右鍵點選該查詢,選擇 重新命名,根據需要編輯名稱,然後按 Enter.

  • 列詳細資訊 - Power Query 編輯器具有以下三個資料 預覽版 選項,您可以使用它們來分析與列關聯的元資料。 您可以在 查看 選項卡上找到這些選項,如以下螢幕截圖所示。

    • 列質量 - 決定列中有效、有錯誤或為空的項目的百分比。 如果有效百分比不是 100,您應該調查原因、修正錯誤並填入空值。

    • 列分佈 - 顯示每列中值的頻率和分佈。 您將在本單元後面進一步研究這一點。

    • 列概況 - 顯示列統計圖表和列分佈圖。

筆記

如果您正在查看超過 1,000 行的大型語義模型,並且想要分析整個語義模型,則需要更改視窗底部的預設選項。 選擇 基於前 1000 行的列分析>基於整個資料集的列分析

您應該考慮的其他元資料是有關整個語義模型的信息,例如檔案大小和資料刷新率。 您可以在關聯的 Power BI Desktop (.pbix) 檔案中找到此元資料。 您載入至 Power BI Desktop 的資料將由 VertiPaq 儲存引擎壓縮並儲存到磁碟上。 語意模型的大小對其表現有直接影響;較小尺寸的語義模型使用較少的資源(記憶體),並實現更快的資料刷新、計算和報表中視覺效果的呈現。

自動日期/時間功能

優化效能時要考慮的另一項是 中的 自動日期/時間 Power BI Desktop選項。 預設情況下,此功能是全域啟用的,這表示如果滿足某些條件, Power BI Desktop 會自動為每個日期列建立一個隱藏的計算表。 新的隱藏表是語義模型中已有表的補充。

自動日期/時間 選項可讓您在篩選、分組和深入查看日曆時間段時使用時間智能。 我們建議您僅在使用日曆時間段並且對時間有簡單的模型要求時才啟用 自動日期/時間 選項。

如果您的資料來源已定義日期維度表,則應使用該表來一致定義組織內的時間,並且您應停用全域 自動日期/時間 選項。 停用此選項可以減少語義模型的大小並減少刷新時間。

您可以全域啟用/停用此 自動日期/時間 選項,以便它適用於您的所有 Power BI Desktop 文件,或者您也可以啟用/停用目前文件的選項,以便它僅適用於單一文件。

若要啟用/停用此 自動日期/時間 選項,請前往 檔案>選項和設定>選項,然後選擇 全域目前檔案 頁。 在任一頁面上,選擇 資料載入 ,然後在 時間智慧 部分中,選取或清除複選框按要求。

有關 自動日期/時間 功能的概述和一般介紹,請參閱 應用自動日期/時間 Power BI Desktop