修正效能問題

已完成

有時候,組織將必須處理執行報表時的效能問題。 Power BI 提供效能分析器工具來協助修正問題並簡化程序。

請考慮您要為組織中的銷售小組建置報表的案例。 您已透過 DirectQuery 建立與資料庫的資料連線,來匯入資料 (位於銷售小組 SQL 資料庫內的數個資料表中)。 當您建立初步的視覺效果與篩選時,您注意到有些資料表的查詢速度比其他資料表更快,而且有些篩選則花比其他篩選更多的時間來處理。

在 Power Query 中最佳化效能

Power Query 中的效能取決於資料來源層級的效能。 Power Query 供應專案的各種數據源很廣泛,而且每個來源的效能微調技術同樣廣泛。 例如,如果您從 Microsoft SQL Server 擷取資料,則應該遵循該產品的效能調整指導方針。 良好的 SQL Server 效能調整技術包含索引建立、硬體升級、執行計畫調整與資料壓縮。 這些主題不在本文的範圍內,在此提及這些主題是為了讓您在使用 Power BI 與 Power Query 時能熟悉您的資料來源並利用其優勢。

Power Query 透過稱為「查詢摺疊」的技術,在資料來源上發揮良好效能。

查詢摺疊

Power Query 編輯器內的查詢摺疊可協助您提升 Power BI 報表的效能。 查詢折疊是您在 Power Query 編輯器 中所做的轉換和編輯同時追蹤為原生查詢或簡單 Select SQL 語句的程式,同時進行轉換。 實作此程式的原因是確保這些轉換可以在原始數據源伺服器中進行,而且不會讓 Power BI 運算資源負荷過大。

您可以使用 Power Query 將資料載入 Power BI。 然後使用 Power Query 編輯器 轉換您的資料,例如重新命名或刪除資料行、附加、剖析、篩選或分組數據。

假設您已重新命名銷售資料中的一些資料行,並以「城市 州別」格式將城市與州別合併在一起。 同時,查詢摺疊功能會在原生查詢中追蹤那些變更。 然後,當您載入資料時,轉換會在原始來源中獨立進行,這可確保 Power BI 中的效能能最佳化。

權益的優點包括:

  • 提高資料重新整理及累加式重新整理的效率。 當您使用查詢折迭匯入數據表時,Power BI 能夠更快速地配置資源並重新整理數據,因為Power BI 不需要在本機執行每個轉換。

  • 與 DirectQuery 和雙重儲存模式自動相容。 所有 DirectQuery 與雙重儲存模式資料來源都必須具有後端伺服器處理能力,才能建立直接連線,這表示查詢摺疊是您可以使用的自動功能。 如果所有轉換都可以縮減為單一 Select 陳述式,則會可以進行查詢摺疊。

下列案例顯示查詢摺疊的實際運作。 在此案例中,您會將一組查詢套用到多個資料表。 使用 Power Query 新增數據源之後,系統會將您導向至 Power Query 編輯器,然後移至 [查詢設定] 窗格,然後以滑鼠右鍵單擊最後一個套用的步驟,如下圖所示。

螢幕擷取畫面,呈現以滑鼠右鍵按一下以顯示操作功能表所套用的最後一個步驟。

如果 [ 檢視原生查詢 ] 選項無法使用 (未以粗體類型) 顯示,則此步驟無法執行查詢折疊,而且您必須在 [ 套用的步驟 ] 區域中往後工作,直到到達 [ 檢視原生查詢 ] 可用的步驟, (以粗體類型顯示) 。 此程式會顯示用來轉換語意模型的原生查詢。

無法進行下列轉換的原生查詢:

  • 加入索引資料行
  • 在以兩個不同的來源合併及附加不同資料表的資料行
  • 變更資料行的資料類型

您可以記住一個好指導方針,那就是如果您可以將轉換轉譯為 Select SQL 陳述式,其中包含如 GROUP BY、SORT BY、WHERE、UNION ALL 與 JOIN 的運算子與子句,您就可以使用查詢摺疊。

雖然查詢摺疊是在擷取、匯入及準備資料時將效能最佳化的一個選項,但另一個選項是查詢診斷。

查詢診斷

您可以用來研究查詢效能的另一個工具是「查詢診斷」。 您可以在載入和轉換數據、重新整理 Power Query 中的數據、在 查詢編輯器 中執行 SQL 語句等等時,判斷可能存在哪些瓶頸。

若要存取 Power Query 編輯器中的查詢診斷,請移至 [首頁] 功能區中的 [工具]。 當您準備好開始轉換數據或在 Power Query 編輯器 進行其他編輯時,請選取 [會話診斷] 區段中的 [啟動診斷]。 完成時,請確定您選取 [ 停止診斷]。

螢幕擷取畫面,顯示 Power Query 編輯器中的 [工具] 索引標籤與 [工作階段診斷] 選項。

選取 [診斷步驟] 會顯示執行該步驟所需的時間長度,如下面的影像所示。 此選項可讓您知道某個步驟是否花了比其他步驟還長的時間來完成,這可作為進一步調查的起點。

套用查詢診斷的螢幕擷取畫面。

當您想要分析 Power Query 端的效能時,此工具很有用,例如載入語意模型、執行數據重新整理,或執行其他轉換工作。

最佳化效能的其他技術

在 Power BI 中最佳化查詢效能的其他方法包括:

  • 盡可能在原始資料來源中處理最多的資料。 Power Query 與 Power Query 編輯器可讓您處理資料;不過,完成此工作所需的處理能力可能會使報表其他區域的效能降低。 一般來說,好的作法是在原生資料來源中盡可能地處理最多的資料。

  • 使用原生 SQL 查詢。 針對 SQL 資料庫使用 DirectQuery 時,例如案例的情況,請確定您不是從預存程式或通用數據表運算式提取數據, (CTA) 。

  • 個別的日期和時間 (如果繫結在一起)。 如果您的任何資料表有合併日期和時間的資料行,將它們匯入 Power BI 之前,請務必先將其分成不同的資料行。 此方法可提升壓縮功能。

如需詳細資訊,請參閱查詢摺疊指導方針查詢摺疊 \(英文\)。