แชร์ผ่าน


การทําความเข้าใจการพับด้วยการวินิจฉัยคิวรี

หนึ่งในสาเหตุที่พบบ่อยที่สุดในการใช้การวินิจฉัยคิวรีคือการทําความเข้าใจที่ดีขึ้นเกี่ยวกับการดําเนินการที่ 'ผลักดันลง' โดย Power Query ที่จะดําเนินการโดยแหล่งข้อมูลส่วนหลังซึ่งเรียกอีกอย่างว่า 'folding' หากเราต้องการดูว่าสิ่งที่พับเราสามารถดูว่าคิวรี 'เฉพาะมากที่สุด' หรืออะไรที่ถูกส่งไปยังแหล่งข้อมูลหลังบ้าน เราสามารถดูสิ่งนี้สําหรับทั้ง ODATA และ SQL

การดําเนินการที่อธิบายไว้ใน บทความ เกี่ยวกับการวินิจฉัยการบันทึกโดยหลัก ๆ แล้วมีสี่สิ่ง:

  • เชื่อมต่อไปยังแหล่งข้อมูล
  • จับตารางลูกค้า
  • กรองบทบาทรหัสลูกค้าเป็น 'ตัวแทนฝ่ายขาย'
  • กลุ่มตาม 'ประเทศ'

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

Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1

Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK

เราสามารถเห็นว่าเรากําลังกรองตารางสําหรับ ContactTitle ที่เท่ากับ 'ตัวแทนฝ่ายขาย' และเราจะส่งกลับสองคอลัมน์เท่านั้น --รหัสลูกค้าและประเทศ แน่นอนว่าประเทศจําเป็นสําหรับการดําเนินการจัดกลุ่ม ซึ่งเนื่องจากไม่ได้ดําเนินการโดยจุดสิ้นสุด ODATA ภายในเครื่อง เราสามารถสรุปสิ่งที่พับและไม่พับที่นี่

ในทํานองเดียวกัน ถ้าเราดูคิวรีเฉพาะและคิวรีสุดท้ายที่ปล่อยออกมาในการวินิจฉัย SQL เราจะเห็นบางสิ่งที่แตกต่างกันเล็กน้อย:

    count(1) as [Count]
from 
(
    select [_].[Country]
    from [dbo].[Customers] as [_]
    where [_].[ContactTitle] = 'Sales Representative' and [_].[ContactTitle] is not null
) as [rows]
group by [Country]

ที่นี่ เราจะเห็นว่า Power Query สร้างการเลือกย่อยที่มีการกรอง ContactTitle เป็น 'ตัวแทนฝ่ายขาย' แล้วจัดกลุ่มตามประเทศในส่วนย่อยนี้ การดําเนินงานทั้งหมดของเราถูกพับ

ด้วยการใช้การวินิจฉัยคิวรี เราสามารถตรวจสอบชนิดของการดําเนินงานที่ถูกพับในอนาคต เราหวังว่าจะทําให้ความสามารถนี้ใช้งานได้ง่ายขึ้น