ตัวบ่งชี้การพับขั้นตอน

หมายเหตุ

ก่อนที่จะอ่านบทความนี้ เราขอแนะPower Query คุณอ่าน Query Folding Power Query เพื่อให้เข้าใจวิธีการพับPower Queryตาราง

ตัวบ่งชี้การพับขั้นตอนช่วยให้คุณสามารถเข้าใจขั้นตอนที่พับหรือไม่พับได้

การใช้ตัวบ่งชี้การพับขั้นตอนเมื่อคุณเปลี่ยนแปลงที่แบ่งการพับจะเห็นได้ชัดเจน ซึ่งจะช่วยให้คุณแก้ไขปัญหาได้อย่างง่ายดายมากขึ้นอย่างรวดเร็ว หลีกเลี่ยงปัญหาด้านประสิทธิภาพการงานของคุณตั้งแต่แรก และมีข้อมูลเชิงลึกในคิวรีของคุณได้ดียิ่งขึ้น ในกรณีส่วนใหญ่ที่คุณใช้งาน ขั้นตอนจะพับหรือไม่พับ มีหลายกรณีที่ผลลัพธ์ไม่ชัดเจนตามที่กล่าวไว้ในส่วนตัวบ่งชี้การวินิจฉัยขั้นตอน (แบบไดนามิก ทึบ และไม่รู้จัก) ภายหลังในบทความนี้

หมายเหตุ

คุณลักษณะตัวบ่งชี้การพับขั้นตอนจะพร้อมใช้งานเฉพาะPower Queryออนไลน์เท่านั้น

การตีความการวินิจฉัยขั้นตอน

เมื่อดูขั้นตอนการวินิจฉัย สิ่งสําคัญที่สุดที่ควรเข้าใจคือ สถานะการวินิจฉัยไม่ได้ตามลดับ กล่าวอีกนัยหนึ่งตัวบ่งชี้ขั้นตอนนั้นอธิบายว่าคิวรีทั้งหมดขึ้นอยู่กับจุดนั้นพับหรือไม่ ถ้าคุณมีตัวบ่งชี้ที่แสดงว่าคิวรีไม่พับตามด้วยตัวบ่งชี้ที่แสดงการพับ หมายความว่า ทุก ๆ ก้าวขึ้นไปที่จุดนั้นจะพับ

คุณสามารถดูตัวอย่างนี้แม้ว่าจะมีคิวรีอย่างง่ายกับแหล่งข้อมูลSQLเดียว

ใช้ฐานข้อมูลตัวอย่าง Northwind เชื่อมต่อกับตาราง Products และโหลดข้อมูล การคิวรีนี้ผ่านประสบการณ์การนําทางจะให้คิวรีต่อไปนี้:

let
  Source = Sql.Databases("localhost"),
  #"Navigation 1" = Source{[Name = "AdventureWorksLT"]}[Data],
  #"Navigation 2" = #"Navigation 1"{[Schema = "SalesLT", Item = "Product"]}[Data]
in
  #"Navigation 2"

ถ้าคุณดูที่วิธีการนี้แสดงขึ้นในตัวบ่งชี้การพับขั้นตอน คุณจะเห็นว่า ขั้นตอนแรกไม่พับ ขั้นตอนที่สองนั้นถูกพับได้ และขั้นตอนที่สามจะพับได้

แหล่งที่มา, การนําทาง 1 และการนําทาง 2 ขั้นตอนในบานหน้าต่างตัวบ่งชี้การพับ

คุณจะเห็นว่าขั้นตอนเริ่มต้นไม่พับแต่ขั้นตอนสุดท้ายที่สร้างขึ้นเมื่อคุณโหลดข้อมูลเบื้องต้นจะพับได้ วิธีสองสามขั้นตอนแรก (แหล่ง, บางครั้ง การ นําทาง ) จัดการขึ้นอยู่กับตัวเชื่อมต่อ ตัวอย่างเช่น SQLนี้ จะถูกจัดการเป็นค่าตารางแค็ตตาล็อกซึ่งไม่ได้พับ อย่างไรก็ตาม ทันทีที่คุณเลือกข้อมูลตัวเชื่อมต่อที่จะ

ในทางกลับกัน อาจหมายความว่าคิวรีของคุณพับขึ้นที่จุดหนึ่ง แล้วหยุดการพับได้ ซึ่งต่างจากในกรณีที่คุณมีตัวบ่งชี้การพับของขั้นตอน ซึ่งแสดงให้เห็นว่าทุกอย่างพับได้ เมื่อคุณมีตัวบ่งชี้แบบไม่พับ ไม่ได้หมายความว่าทุกอย่างไม่ได้พับ แต่หมายความว่า "ไม่ใช่ทุกอย่าง" พับ โดยทั่วไปแล้วทุกอย่างขึ้นอยู่กับตัวบ่งชี้การพับล่าสุดจะพับได้ด้วยการดําเนินการเพิ่มเติมที่เกิดขึ้นหลังจากนั้น

การปรับเปลี่ยนตัวอย่างจากด้านบน คุณสามารถแปลงที่ไม่พับได้ -ใช้ตัวอักษรพิมพ์ใหญ่แต่ละ Word

let
  Source = Sql.Databases("localhost"),
  #"Navigation 1" = Source{[Name = "AdventureWorksLT"]}[Data],
  #"Navigation 2" = #"Navigation 1"{[Schema = "SalesLT", Item = "Product"]}[Data],
  #"Capitalized each word" = Table.TransformColumns(#"Navigation 2", {{"ProductID", each Text.Proper(Text.From(_)), type text}})
in
  #"Capitalized each word"

ในตัวบ่งชี้การพับขั้นตอน คุณจะเห็นว่าคุณมีตัวบ่งชี้เดียวกันกับด้านบน ยกเว้นขั้นตอนสุดท้ายจะไม่พับ ทุกอย่างขึ้นอยู่กับขั้นตอนสุดท้ายนี้จะถูกปฏิบัติตามแหล่งข้อมูล ขณะที่ขั้นตอนสุดท้ายจะปฏิบัติการภายในเครื่อง

แหล่งที่มา, การนําทาง 1, การนําทาง 2 และใช้ประโยชน์จากแต่ละขั้นตอนของ Word ในบานหน้าต่างตัวบ่งชี้การพับ

ตัวบ่งชี้การวินิจฉัยขั้นตอน

ตัวบ่งชี้การพับขั้นตอนใช้แผนคิวรีพื้นฐานและต้องการให้สามารถรับข้อมูลเกี่ยวกับคิวรีเพื่อรายงานได้ ในขณะนี้แผนคิวรีสนับสนุนเฉพาะตาราง ดังนั้นบางกรณี (รายการ ระเบียน primitives) จะไม่รายงานเป็นพับหรือไม่ ในเดียวกัน ตารางค่าคงที่จะรายงานเป็นทึบ

ตัวบ่งชี้ ไอคอน คำอธิบาย
การพับ ตัวบ่งชี้การพับของ 'จะพับ' ตัวบ่งชี้การพับจะบอกคุณว่าคิวรีขึ้นอยู่กับขั้นตอนนี้จะได้รับการประเมินโดยแหล่งข้อมูล
ไม่พับ ตัวบ่งชี้การพับของ 'ไม่ใช่การพับ' ตัวบ่งชี้แบบไม่พับจะบอกคุณว่าส่วนบางส่วนของคิวรีขึ้นอยู่กับขั้นตอนนี้จะได้รับการประเมินภายนอกแหล่งข้อมูล คุณสามารถเปรียบเทียบตัวบ่งชี้การพับล่าสุดหากมีตัวหนึ่ง เพื่อดูว่าคุณสามารถจัดเรียงคิวรีของคุณใหม่เพื่อให้มีประสิทธิภาพมากขึ้นหรือไม่
อาจพับได้ ตัวบ่งชี้การพับของ 'อาจพับ' อาจพับตัวบ่งชี้ไม่ใช่เรื่องแปลก ซึ่งหมายถึงการพับคิวรี 'อาจ' โดยระบุว่าการพับ/ไม่พับจะถูกกําหนดในขณะดําเนินการ เมื่อดึงข้อมูลผลลัพธ์จากคิวรี และแผนคิวรีเป็นแบบไดนามิก โดยอาจปรากฏขึ้นพร้อมกับการเชื่อมต่อ ODBC หรือ OData เท่านั้น
ทึบ ตัวบ่งชี้การพับของ 'ทึบแสง การพับแบบไม่สอดคล้องกัน' ตัวบ่งชี้ทึบแสงบอกคุณว่าแผนคิวรีที่เป็นผลลัพธ์นั้นไม่สอดคล้องกันด้วยเหตุผลบางอย่าง ซึ่งโดยทั่วไปแล้วจะระบุว่า มีตาราง 'ค่าคงที่' จริง หรือตารางนั้นแปลงหรือตัวเชื่อมต่อไม่ได้รับการสนับสนุนโดยเครื่องมือตัวบ่งชี้และแผนคิวรี
ไม่รู้จัก ตัวบ่งชี้การพับของ 'ไม่มีแผนคิวรี' ตัวบ่งชี้ที่ไม่รู้จักแสดงถึงการไม่มีแผนคิวรี เนื่องจากข้อผิดพลาดหรือพยายามเรียกใช้การประเมินแผนคิวรีบนสิ่งอื่นที่ไม่ใช่ตาราง (เช่น เรกคอร์ด รายการ หรือแรกเริ่ม)

การวิเคราะห์ตัวอย่าง

คุณสามารถดูตัวอย่างได้โดยการเชื่อมต่อกับตาราง ผลิตภัณฑ์ ใน Adventure Works (SQL) การโหลดเริ่มต้นจะมีลักษณะดังนี้:

ตัวบ่งชี้ขั้นตอนเริ่มต้นในการโหลดตารางผลิตภัณฑ์

การเพิ่มขั้นตอนเพิ่มเติมที่พับจะขยายเส้นสีเขียวนั้น เนื่องจากขั้นตอนนี้ก็ยังพับด้วย

เพิ่มขั้นตอนลบคอลัมน์ในคิวรีก่อนหน้าขยายเส้นตัวบ่งชี้การพับ

การเพิ่มขั้นตอนที่ไม่พับจะแสดงตัวบ่งชี้ ตัวอย่างเช่น การใส่ตัวพิมพ์ใหญ่ แต่ละ word จะไม่พับ เราสามารถเห็นได้อย่างชัดเจนว่าตัวบ่งชี้มีการเปลี่ยนแปลงซึ่งแสดงว่าตามขั้นตอนนี้จะหยุดการพับแล้ว ตามที่กล่าวถึงก่อนหน้านี้ ขั้นตอนก่อนหน้านี้จะยังคงพับ

การเพิ่มแต่ละขั้นตอนของ Word เป็นตัวพิมพ์ใหญ่เพื่อแบ่งการพับ

การเพิ่มขั้นตอนเพิ่มเติมสตรีมที่ขึ้นอยู่กับ การใช้ประโยชน์จากแต่ละขั้นตอน จะยังคงไม่ต้องพับ

การเพิ่มขั้นตอนเพิ่มเติมโดยไม่พับ

อย่างไรก็ตาม หากคุณลบคอลัมน์ที่ใช้การตัวพิมพ์ใหญ่เพื่อให้แผนคิวรีที่ปรับให้เหมาะสมสามารถพับได้อีกครั้ง คุณจะได้รับผลลัพธ์เช่นนี้ แม้ว่าสิ่งที่เหมือนสิ่งนี้ไม่ใช่เรื่องแปลก ซึ่งแสดงให้คุณเห็นถึงวิธีการที่ไม่เพียงแค่ลด้านล่างเท่านั้น แต่การแปลงจริงที่ใช้ด้วย

การแสดงวิธีการลบคอลัมน์ที่มีปัญหาจะอนุญาตให้สามารถพับสิ่งต่าง ๆ ได้โดยไม่ต้องลบขั้นตอนออก