分享方式:


查詢診斷

使用查詢診斷,您可以進一步瞭解 Power Query 在撰寫和重新整理 Power BI Desktop 時執行的動作。 雖然我們將在未來擴充這項功能,包括新增在完整重新整理期間使用它的能力,但此時您可以使用此功能來瞭解所發出的查詢種類、撰寫重新整理期間可能會遇到的變慢,以及發生何種背景事件。

若要使用查詢診斷,請移至 Power Query 編輯器功能區中的 [ 工具 ] 索引標籤。

Power Query Tools 功能區下查詢診斷功能的螢幕快照。

根據預設,查詢診斷可能需要執行系統管理許可權(視IT原則而定)。 如果您發現自己無法執行查詢診斷,請開啟 Power BI Desktop 選項頁面,然後在 [診斷] 索引標籤中選取 [在 查詢編輯器 中啟用 ](不需要以系統管理員身分執行)。 此選取範圍會限制您在對 Power BI 進行完整重新整理時,無法追蹤診斷,而不是 Power Query 編輯器。 但是,您仍然可以在預覽、撰寫等時使用它。

[查詢診斷] 選項的螢幕快照,其中強調 [查詢編輯器] 選項。

每當您開始診斷時,Power Query 就會開始追蹤您造成的任何評估。 大部分用戶認為的評估是在您按下重新整理時,或當您第一次擷取數據時。 但根據連接器而定,有許多動作可能會造成評估。 例如,使用 SQL 連接器時,當您擷取要篩選的值清單時,也會開始評估,但它不會與使用者查詢產生關聯,而且會在診斷中表示。 其他系統產生的查詢可能包含導覽器或取得數據體驗。

當您按下 [診斷步驟] 時,Power Query 只會執行您所查看步驟的特殊評估。 接著會顯示該步驟的診斷,而不會顯示查詢中其他步驟的診斷。 此評估可讓您更輕鬆地對問題進行縮小檢視。

請務必從 [ 啟動診斷 ] 錄製所有追蹤,然後按 [ 停止診斷]。 停止診斷可讓引擎收集記錄的追蹤,並將其剖析為適當的輸出。 如果沒有此步驟,追蹤就會遺失。

診斷類型

我們目前提供三種類型的診斷,其中一種有兩個層級的詳細數據。

這些診斷的第一個是主要診斷,其具有詳細檢視和摘要檢視。 摘要檢視旨在讓您立即深入瞭解查詢中花費的時間。 詳細檢視更深層次,逐行檢視,一般而言,只有用戶進行嚴重診斷才需要。

在此檢視中,某些功能,例如 [數據源查詢] 資料行,目前僅適用於特定連接器。 我們將努力在未來擴大這一涵蓋範圍的範圍。

數據隱私權分割可讓您進一步瞭解用於數據隱私權的邏輯分割區。

注意

Power Query 可能會執行您可能未直接觸發的評估。 為了擷取元數據,我們會執行其中一些評估,以便優化查詢或提供更好的用戶體驗(例如擷取篩選數據列體驗中所顯示數據行內相異值的清單)。 其他方法可能與連接器處理平行評估的方式有關。 同時,如果您在查詢診斷中看到您不認為有意義的重複查詢,請隨意透過一般支援管道連絡,您的意見反應就是我們如何改善產品。

摘要與詳細檢視

查詢診斷提供兩個檢視:摘要和詳細。 摘要檢視會將多個相關作業折疊成單一作業。 在此程式中,會合併每個作業所收集的詳細數據,並加總獨佔持續時間。 此程式不會遺失任何資訊。

摘要檢視提供評估期間發生的狀況概觀,以便進行高階檢閱。 如果特定作業需要進一步細分,您可以查看群組標識符,並檢視詳細數據檢視中分組的對應作業。

說明多個評估

當 Power Query 編輯器中發生重新整理時,在幕後做了許多工作,以嘗試提供流暢的用戶體驗。 例如,當您 重新整理預覽時,評估工具會執行每個指定查詢的最後一個步驟。 但在背景中,它會循序執行 n-1 步驟、n-2、步驟等等。 因此,如果您逐步執行您的步驟,它便已可供使用。

為了提供更高的效能,目前會發生一些快取,因此不需要重新執行最終查詢計劃的每個部分,因為它會返回步驟。 雖然此快取對於一般撰寫很有用,但表示您不一定會收到正確的步驟比較資訊,因為稍後的評估會提取快取的數據。

診斷架構

Id

分析錄製的結果時,請務必依標識符篩選錄製會話,讓獨佔持續時間 % 等數據行有意義。

標識碼是複合標識碼。 其格式為兩個數位,一個在點之前,一個之後。 第一個數位與單一用戶動作所產生的所有評估相同。 換句話說,如果您按兩次重新整理,則會有兩個不同的數字領先點,每個用戶活動都會有一個。 這個編號是指定診斷記錄的循序。

第二個數位代表引擎的評估。 此數位是排入佇列之進程存留期的循序數位。 如果您執行多個診斷記錄會話,此數目會持續成長到不同的會話。

總結來說,如果您開始錄製、按評估一次,並停止錄製,則診斷中會出現一些標識符。 但是,由於您只採取了一個動作,所以它們都是 1.1、1.2、1.3 等等。

activityId 和 evaluationId 的組合,以點分隔,提供單一錄製會話評估的唯一標識符。

查詢

Power Query 編輯器左側窗格中的 [查詢] 名稱。

步驟

Power Query 編輯器右窗格中的 [步驟] 名稱。 篩選下拉式清單之類的專案通常會與您篩選的步驟產生關聯,即使您未重新整理步驟也一樣。

類別

作業的類別。

數據源種類

此數據會告訴您您要存取的數據源類型,例如 SQL 或 Oracle。

作業

正在執行的實際作業。 這項作業可能包括評估工具工作、開啟連線、將查詢傳送至數據源等等。

開始時間

作業啟動的時間。

結束時間

作業結束的時間。

獨佔持續時間 ≤

事件的 [獨佔持續時間] 數據行是事件作用中的時間量。 這與從減去事件 [開始時間] 數據行和 [結束時間] 數據行中的值所產生的「持續時間」值形成對比。 這個「持續時間」值代表事件開始時間與結束時間之間的總時間,這可能包括事件處於暫停或非使用中狀態的時間,而另一個事件正在耗用資源。

專屬持續時間 % 在指定的評估中最多加起來約 100%,如 Id 資料行所代表。 例如,如果您篩選標識碼為 1.x 的數據列,「獨佔持續時間」百分比會加總約 100%。 如果您加總指定診斷數據表中所有數據列的獨佔持續時間 % 值,則情況並非如此。

獨佔持續時間

絕對時間,而不是獨佔持續時間的百分比。 評估的總持續時間 (也就是,非使用中事件的專屬持續時間 + 非使用中時間)可透過下列兩種方式之一計算:

  • 尋找稱為「評估」的作業。結束時間-開始時間之間的差異會導致事件的總持續時間。

  • 從結束時間上限減去事件中所有作業的最小開始時間。 如果為事件收集的資訊未計入總持續時間,則會產生稱為「追蹤差距」的作業,以考慮此時間差距。

資源

您要存取資料的資源。 此資源的確切格式取決於數據源。

數據源查詢

Power Query 會執行一些稱為 折疊的功能,也就是盡可能針對後端數據源執行查詢的許多部分。 在 DirectQuery 模式中(透過 Power Query),啟用時,只會轉換折疊執行。 在匯入模式中,無法折疊的轉換會改為在本機執行。

[數據源查詢] 資料行可讓您查看針對後端數據源傳送的查詢或 HTTP 要求/回應。 當您在編輯器中撰寫查詢時,會發出許多數據源查詢。 其中一些查詢是轉譯預覽的實際最終數據源查詢。 但其他人可能用於數據分析、篩選下拉式清單、聯結資訊、擷取架構的元數據,以及任意數目的其他小型查詢。

一般而言,除非有特定原因需要注意,否則不應該擔心所發出的數據源查詢數目。 相反地,您應該專注於確定正在擷取適當的內容。 此數據行也可能有助於判斷 Power Query 評估是否已完全折疊。

其他資訊

我們的連接器擷取了很多資訊。 大部分是不完全的,並不適合標準數據行階層。 這項資訊會放在其他資訊數據行的記錄中。 從自定義連接器記錄的資訊也會出現在這裡。

資料列計數

數據源查詢所傳回的數據列數目。 未在所有連接器上啟用。

內容長度

HTTP 要求所傳回的內容長度,如常定義。 此架構並未在所有連接器中啟用,而且對於以區塊擷取要求的連接器而言並不精確。

用戶查詢是否為

布爾值,指出其是否為使用者所撰寫且出現在左側窗格中的查詢,或是由其他用戶動作產生。 其他使用者動作可以包含篩選選取專案,或使用取得數據體驗中的導覽器等專案。

路徑

當檢視為單一評估內所有作業的間隔樹狀結構一部分時,Path 代表作業的相對路由。 在樹狀結構的頂端(根)有一個稱為 評估 路徑 「0」 的單一作業。此評估的開始時間會對應至整個評估的開始時間。 此評估的結束時間會顯示整個評估完成的時間。 此最上層作業的專屬持續時間為 0,因為它的唯一目的是做為樹狀結構的根目錄。

根目錄的進一步作業分支。 例如,作業可能會有 「0/1/5」 作為路徑。 此路徑會理解為:

  • 0:樹根目錄
  • 1:目前作業的父系
  • 5:目前作業的索引

作業 “0/1/5” 可能有子節點,在此情況下,路徑的格式為 “0/1/5/8”,8 代表子系的索引。

群組識別碼

如果合併兩個(或更多)作業會導致詳細數據遺失,則不會發生。 群組是設計來估計評估期間執行的「命令」。 在詳細檢視中,多個作業會共用群組標識符,對應至摘要檢視中匯總的群組。

與大部分數據行一樣,群組標識符只會在特定評估中相關,如標識符數據行篩選。

數據隱私權分割架構

Id

與其他查詢診斷結果的標識碼相同。 整數部分代表單一活動標識碼,而分數部分則代表單一評估。

分割區索引鍵

對應至做為防火牆分割的查詢/步驟。

防火牆群組

說明為何必須個別評估此分割區的分類,包括分割區隱私權層級的詳細數據。

已存取的資源

此分割區所存取之所有資源的資源路徑清單,而且通常會唯一識別數據源。

數據分割輸入

目前分割區相依的數據分割索引鍵清單(此列表可用來建置圖形)。

運算式

在分割區的查詢/步驟之上評估的表達式。 在數種情況下,它會與查詢/步驟一致。

開始時間

此分割區評估開始的時間。

結束時間

評估結束此分割區的時間。

期間

衍生自結束時間減去開始時間的值。

獨佔持續時間

如果假設分割區是在單個線程中執行,則獨佔持續時間是可歸因於此分割區的「實際」持續時間。

獨佔持續時間 %

以百分比表示的獨佔持續時間。

診斷

只有在同時擷取查詢診斷「匯總」或「詳細」時,才會顯示此數據行,讓用戶能夠在兩個診斷輸出之間對應。

性能計數器架構

當您執行性能計數器時,每半秒 Power Query 會擷取資源使用率的快照集。 此快照集不適用於非常快速的查詢,但對於使用更多資源的查詢很有説明。

% 處理器時間

處理器在查詢上花費的時間百分比。 由於多個處理器,這個百分比可能達到100%以上。

處理器時間總計

在查詢上花費的處理器時間總計持續時間。

每秒 IO 數據位元組數

從數據源接收的數據輸送量速度,每秒以位元組表示。

認可 (位元組)

評估所保留的虛擬記憶體數量。

工作集 (位元組)

評估所保留的記憶體數量。