查詢折疊指標
注意
閱讀本文之前,建議您先閱讀 Power Query 中的查詢評估和查詢折疊概觀,以進一步瞭解折疊在 Power Query 中的運作方式。
查詢折疊指標可協助您瞭解折疊或未折疊的步驟。
使用查詢折迭指標時,當您進行折疊的變更時,就會變得很明顯。 這項功能可協助您更快速地解決問題、避免第一個位置發生效能問題,以及更深入瞭解您的查詢。 在大部分情況下,您遇到步驟折疊或不要折疊。 但有許多情況的結果並不那麼明顯,而且這些案例會在步驟診斷指標中討論(動態、不透明和未知)。
注意
查詢折疊指標功能僅適用於Power Query Online。
解譯查詢折疊診斷
當您檢查步驟旁的查詢折疊指標時,最重要的事項是診斷狀態不是循序的。 換句話說,該步驟的指標會描述整個查詢是否折疊。 如果您有一個指標,顯示查詢不會折疊,後面接著顯示它確實折疊的指標,表示您的查詢最多會折疊。
即使對 SQL 來源使用簡單的查詢,此解譯也能運作。 例如,使用 AdventureWorks 範例資料庫,連線到 Production.Product 數據表並載入數據。 透過 Power Query 導覽器載入此範例可提供下列查詢:
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
Navigation
如果您檢查此程式代碼在查詢折疊指標中的顯示方式,請注意,第一個步驟是不確定的。 但第二個步驟會折疊,這表示查詢會折疊到該點。
在此範例中,初始步驟無法確認為折疊(不確定),但當您一開始載入數據時所產生的最後一個步驟會折疊。 處理第一個步驟(來源,有時其他 流覽 步驟)的方式取決於連接器。 例如,使用 SQL,它會當做目錄數據表值來處理,但不會折疊。 不過,一旦您選取該連接器的數據,就會折疊。
相反地,這個指示也可能表示您的查詢折疊到某個點,然後停止折疊。 與步驟有折迭指標顯示所有專案折疊的情況不同,當您有未折疊的指標時,並不表示所有專案都不會折疊。 相反地,這意味著“不是一切”折迭。 一般而言,所有項目都高達最後一個折迭指標折疊,之後會發生更多的作業。
修改上一個範例,您可以提供永遠不會折疊的轉換—將每個 Word 大寫。
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data],
#"Capitalized each word" = Table.TransformColumns(Navigation, {{"Name", each Text.Proper(_), type text}})
in
#"Capitalized each word"
在查詢折迭指標中,您具有與先前相同的指標,但最後一個步驟不會折疊。 在數據源上執行最後一個步驟為止的所有專案,而最後一個步驟則是在本機執行。
步驟診斷指標
查詢折疊指標會使用基礎查詢計劃,並要求它能夠取得查詢的相關信息來報告它。 查詢計劃目前僅支持數據表,因此某些案例(清單、記錄、基本類型)不會報告為折疊。 同樣地,常數數據表會報告為不透明。
指標 | Icon | 描述 |
---|---|---|
摺疊 | 折疊指標會告訴您數據源會評估此步驟的查詢。 | |
不折疊 | 不折迭指標會告訴您,在數據源外部評估到此步驟的某個部分查詢。 您可以比較它與最後一個折疊指標,如果有的話,看看是否可以重新排列查詢,使其效能更高。 | |
可能折疊 | 可能折疊指標並不常見。 它們表示查詢「可能」折疊。 它們表示當從查詢提取結果時,會在運行時間判斷折疊或不折疊,而且查詢計劃是動態的。 這些指標可能只會與 ODBC 或 OData 連線一起出現。 | |
不透明 | 不透明的指標會告訴您,產生的查詢計劃因某種原因而無法確定。 它通常表示有真正的「常數」數據表,或是指針和查詢計劃工具不支援轉換或連接器。 | |
Unknown | 未知的指標代表沒有查詢計劃,可能是因為錯誤或嘗試在數據表以外的專案上執行查詢計劃評估(例如記錄、清單或基本類型)。 |
範例分析
如需範例分析,請從連線到 Adventure Works 中的 Production.Product 數據表 (SQL) 開始。 初始載入,類似於初始範例,看起來像下圖。
新增更多可折疊的步驟會延伸右邊的綠色線條。 因為此步驟也會折疊,因此會發生此擴充功能。
新增不會折疊的步驟會顯示不同的指標。 例如, 將每個單字 大寫永遠不會折疊。 指標會變更,顯示從此步驟開始,它已停止折疊。 如先前所述,先前的步驟仍然折疊。
在下游新增更多相依 於大寫的步驟,每個步驟 會繼續不折疊。
不過,如果您移除套用大寫的數據行,讓優化查詢計劃可以再次折疊,您就會得到如下影像的結果。 然而,類似這樣的事情並不常見。 此影像說明它不只是步驟順序,也說明套用的實際轉換。