Query Folding — ให้ฐานข้อมูลทำแทน
Power Query แปลงขั้นตอนเป็นคำสั่งให้ฐานข้อมูลทำแทน — รีเฟรชเร็วขึ้นมหาศาลถ้าไม่ทำให้ folding ขาด.
เริ่มอ่านตรงนี้ก่อน
อธิบายแบบง่าย
Query Folding — ให้ฐานข้อมูลทำแทน คือเรื่องที่ช่วยให้เราใช้เชื่อมต่อและทำความสะอาดข้อมูลซ้ำๆ ให้เป็นขั้นตอนก่อนเอาไปทำรายงานได้ถูกทางขึ้น
ระดับ
เหมาะกับคนที่ต้องตรวจงานหรือวางมาตรฐาน
ใช้เมื่อไหร่
ต่อกับฐานข้อมูล (SQL, Dataverse) แล้วรีเฟรชช้าผิดปกติ
อ่านแล้วทำอะไรต่อ
เดิมใส่ Index column ก่อนแล้วค่อยกรองปี — folding ขาดตั้งแต่ Index ทำให้ดึงทั้งตาราง ย้ายตัวกรองปีขึ้นก่อน Index แล้วรีเฟรชจาก 20 นาทีเหลือ 2 นาที
เห็นภาพ: ทริคนี้เป็นยังไง
ดึงทั้งตาราง 5 ล้านแถว มากรองในเครื่อง รีเฟรช 20 นาที
ส่ง SQL: WHERE Year = 2026 ฐานข้อมูลส่งมา 8 หมื่นแถว รีเฟรช 2 นาที
ใช้ตอนไหน?
- ต่อกับฐานข้อมูล (SQL, Dataverse) แล้วรีเฟรชช้าผิดปกติ
- ใช้ incremental refresh — ต้อง folding ได้จึงจะกรองช่วงเวลาที่ต้นทาง
- ออกแบบลำดับขั้นตอน — เอาขั้นที่ fold ได้ (กรอง/เลือกคอลัมน์) ไว้ก่อนขั้นที่ fold ไม่ได้
ความหมาย
query folding คือความสามารถของ Power Query ในการแปลงขั้นตอน (กรอง เลือกคอลัมน์ จัดกลุ่ม) กลับเป็นภาษาของแหล่งข้อมูล เช่น SQL แล้วส่งไปให้ฐานข้อมูลทำ — ดึงมาเฉพาะผลลัพธ์ ไม่ใช่ดึงข้อมูลทั้งก้อนมาประมวลผลในเครื่อง ขั้นตอนไหนทำให้ folding หยุด ขั้นตอนถัดไปทั้งหมดต้องทำในเครื่อง
วิธีตรวจว่า fold อยู่ไหม
คลิกขวาที่ขั้นตอนใน Applied Steps แล้วดู View Native Query — เปิดได้ = ยัง fold อยู่ ถ้าเทาคือ folding ขาดแล้ว
ขั้นที่มัก fold ได้: Filter rows, Remove columns,
Rename, Group By, Merge (ต้นทางเดียวกัน)
ขั้นที่มักทำให้ folding ขาด: เปลี่ยนชนิดข้ามแบบแปลกๆ,
Index column, ฟังก์ชัน M ที่ SQL ไม่มีตัวอย่างการใช้
ย้ายตัวกรองขึ้นก่อน
เดิมใส่ Index column ก่อนแล้วค่อยกรองปี — folding ขาดตั้งแต่ Index ทำให้ดึงทั้งตาราง ย้ายตัวกรองปีขึ้นก่อน Index แล้วรีเฟรชจาก 20 นาทีเหลือ 2 นาที