共用方式為


在 Power BI 中可視化和解譯查詢診斷

簡介

記錄您想要使用的診斷之後,下一個步驟就是能夠了解他們所說的內容。

最好能充分瞭解查詢診斷架構中每個數據行的意義,我們在此簡短教學課程中不會重複。 這裡有一個完整的寫。

一般而言,建置視覺效果時,最好使用完整的詳細數據表。 因為不論它有多少個數據列,您可能看到的是某種描述不同資源所花費的時間如何加總,或發出原生查詢的方式。

如記錄診斷一文所述,我正處理相同數據表的 OData 和 SQL 追蹤(或幾乎如此),也就是來自 Northwind 的 Customers 數據表。 特別是,我將著重於客戶的共同要求,以及其中一個更容易解譯追蹤集合:數據模型的完整重新整理。

建置視覺效果

當您進行追蹤時,有許多方式可以評估它們。 在本文中,我們將著重於兩個視覺效果分割-一個來顯示您關心的詳細數據,另一個則會輕鬆地查看各種因素的時間貢獻。 針對第一個視覺效果,會使用數據表。 您可以挑選您想要的任何字段,但建議使用簡單、高階的欄位來查看其運作狀況:

針對第二個視覺效果,其中一個選項是使用堆棧柱形圖。 在 'Axis' 參數中,您可能想要使用 'Id' 或 'Step'。 如果我們查看重新整理,因為它與編輯器本身的步驟無關,我們可能只想查看 「標識符」。 針對 'Legend' 參數,您應該設定 'Category' 或 'Operation' (視您想要的數據粒度而定)。 針對 'Value',請設定 'Exclusive Duration' (並確定它不是 %, 以便您取得原始持續時間值)。 最後,針對工具提示,設定 「最早的 開始時間」。

建置視覺效果之後,請確定您依「最早開始 時間」遞增排序,以便查看發生的順序。

詳細數據和時間匯總的視覺效果。

雖然您的確切需求可能不同,但圖表組合是開始查看許多診斷檔案和許多用途的好位置。

解譯視覺效果

如上所述,您可以嘗試使用查詢診斷來回答許多問題,但最常看到的兩個問題是詢問花費的時間,以及詢問傳送至來源的查詢為何。

詢問花費的時間很簡單,而且對大多數連接器來說會很類似。 如其他地方所述,具有查詢診斷的警告是,您會根據連接器看到截然不同的功能。 例如,許多 ODBC 型連接器不會準確記錄傳送至實際後端系統的查詢,因為 Power Query 只會看到其傳送至 ODBC 驅動程式的內容。

如果我們想要查看時間的花費方式,我們只能查看上面建置的視覺效果。

現在,因為我們在這裡使用的範例查詢時間值太小了,如果我們想要處理 Power BI 報告時間的方式,如果我們在 Power Query 編輯器中將 [獨佔持續時間 ] 資料行轉換成 [秒] 時會更好。 一旦進行這項轉換,我們就可以查看圖表,並取得花費時間的體面想法。

針對我的 OData 結果,我在影像中看到大部分時間都是從來源擷取數據—如果我在圖例上選取 [數據源] 專案,則會顯示與將查詢傳送至數據源相關的所有不同作業。

OData Northwind 查詢診斷摘要。

如果我們執行所有相同的作業並建置類似的視覺效果,但使用SQL追蹤而不是 ODATA 追蹤,我們可以看到兩個數據源的比較方式!

OData Northwind 查詢診斷摘要與 SQL 追蹤。

如果我們選取數據源數據表,就像使用 ODATA 診斷一樣,我們可以看到第一個評估 #2.3 在此影像中發出元數據查詢,第二個評估實際上擷取我們關心的數據。 因為我們在此案例中擷取少量的數據,因此提取的數據會花費少量時間(不到第二秒的十分之一,整個第二次評估就會發生,數據擷取本身不到二十分之一),但在所有情況下都不會如此。

如上所述,我們可以選取圖例上的「數據源」類別,以查看發出的查詢。

深入探索數據

查看路徑

當您查看此問題時,如果花費的時間似乎很奇怪,例如,在 OData 查詢上,您可能會看到有具有下列值的數據源查詢:

Request:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle%20eq%20%27Sales%20Representative%27&$select=CustomerID%2CCountry HTTP/1.1
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7

<Content placeholder>

Response:
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7
Content-Length: 435

<Content placeholder>

此數據源查詢與只佔用 1% 的獨佔持續時間的作業相關聯。 同時,也有類似的:

Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1

Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK

此數據源查詢與佔用近75%的獨佔持續時間的作業相關聯。 如果您開啟 Path,則發現後者實際上是前者的子系。 這表示第一個查詢基本上會自行新增少量時間,而「內部」查詢會追蹤實際數據擷取。

這些是極端值,但它們位於可能看到的內容範圍內。