กลับไปหน้า Power Query
ทริคPower Query

Query Folding — ให้ฐานข้อมูลทำแทน

Power Query แปลงขั้นตอนเป็นคำสั่งให้ฐานข้อมูลทำแทน — รีเฟรชเร็วขึ้นมหาศาลถ้าไม่ทำให้ folding ขาด.

เริ่มอ่านตรงนี้ก่อน

อธิบายแบบง่าย

Query Folding — ให้ฐานข้อมูลทำแทน คือเรื่องที่ช่วยให้เราใช้เชื่อมต่อและทำความสะอาดข้อมูลซ้ำๆ ให้เป็นขั้นตอนก่อนเอาไปทำรายงานได้ถูกทางขึ้น

ระดับ

เหมาะกับคนที่ต้องตรวจงานหรือวางมาตรฐาน

ใช้เมื่อไหร่

ต่อกับฐานข้อมูล (SQL, Dataverse) แล้วรีเฟรชช้าผิดปกติ

อ่านแล้วทำอะไรต่อ

เดิมใส่ Index column ก่อนแล้วค่อยกรองปี — folding ขาดตั้งแต่ Index ทำให้ดึงทั้งตาราง ย้ายตัวกรองปีขึ้นก่อน Index แล้วรีเฟรชจาก 20 นาทีเหลือ 2 นาที

เห็นภาพ: ทริคนี้เป็นยังไง

folding ขาด ⚠️

ดึงทั้งตาราง 5 ล้านแถว มากรองในเครื่อง รีเฟรช 20 นาที

fold ได้ ✓

ส่ง SQL: WHERE Year = 2026 ฐานข้อมูลส่งมา 8 หมื่นแถว รีเฟรช 2 นาที

folding ขาดต้องดึงทั้งตาราง เทียบกับ fold ได้ — ฐานข้อมูลกรองให้ก่อนส่งมา

ใช้ตอนไหน?

  • ต่อกับฐานข้อมูล (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 นาที