แก้ไขปัญหาด้านประสิทธิภาพการทำงาน

เสร็จสมบูรณ์เมื่อ

ในบางครั้ง องค์กรจะต้องแก้ไขปัญหาประสิทธิภาพเมื่อเรียกใช้รายงาน Power BI มีเครื่องมือ Performance Analyzer (ตัววิเคราะห์ประสิทธิภาพ) เพื่อช่วยแก้ไขปัญหาและทำให้กระบวนการที่มีความไหลลื่น

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

ปรับปรุงประสิทธิภาพการทำงานให้เหมาะสมใน Power Query

ประสิทธิภาพการทำงานใน Power Query ขึ้นอยู่กับประสิทธิภาพการทำงานในระดับแหล่งข้อมูล ความหลากหลายของแหล่งข้อมูล Power Query มีความกว้าง และเทคนิคการปรับแต่งประสิทธิภาพการทํางานสําหรับแต่ละแหล่งมีความกว้างเท่ากัน ตัวอย่างเช่น ถ้าคุณสกัดแยกข้อมูลจาก Microsoft SQL Server คุณควรทำตามคำแนะนำการปรับแต่งประสิทธิภาพสำหรับผลิตภัณฑ์ เทคนิคการปรับแต่งประสิทธิภาพการทํางานที่ดี SQL Server ได้แก่ การสร้างดัชนี การอัปเกรดฮาร์ดแวร์ การปรับแต่งแผนการดําเนินการ และการบีบอัดข้อมูล หัวข้อเหล่านี้อยู่นอกเหนือขอบเขตที่นี่ และถูกครอบคลุมเป็นตัวอย่างเพื่อสร้างความคุ้นเคยกับแหล่งข้อมูลของคุณ และทำให้เกิดประโยชน์เมื่อใช้ Power BI และ Power Query

Power Query ใช้ประโยชน์จากประสิทธิภาพที่ดีในแหล่งข้อมูลผ่านเทคนิคที่เรียกว่า Query Folding

Query Folding

Query Folding ภายใน Power Query Editor ช่วยให้คุณเพิ่มประสิทธิภาพของรายงาน Power BI ของคุณ Query Folding คือกระบวนการที่ซึ่งการแปลงและแก้ไขที่คุณทําในตัวแก้ไข Power Query ถูกติดตามพร้อมกันเป็นคิวรีแบบเนทีฟ หรือคําสั่ง Select แบบง่ายในภาษา SQL ในขณะที่คุณกําลังทําการแปลง เหตุผลสําหรับการใช้กระบวนการนี้คือเพื่อให้แน่ใจว่าการแปลงเหล่านี้สามารถเกิดขึ้นได้ในเซิร์ฟเวอร์แหล่งข้อมูลต้นฉบับและไม่ได้ครอบงําทรัพยากรการประมวลผล Power BI

คุณสามารถใช้ Power Query เพื่อโหลดข้อมูลลงใน Power BI ได้ จากนั้นใช้ตัวแก้ไข Power Query เพื่อแปลงข้อมูลของคุณ เช่น การเปลี่ยนชื่อหรือลบคอลัมน์ การผนวก การแยกวิเคราะห์ การกรอง หรือการจัดกลุ่มข้อมูลของคุณ

พิจารณาสถานการณ์สมมติที่คุณได้เปลี่ยนชื่อคอลัมน์สองถึงสามคอลัมน์ในข้อมูลยอดขายและผสานคอลัมน์เมืองและรัฐเข้าด้วยกันในรูปแบบ“นครรัฐ” ในขณะเดียวกันคุณลักษณะ Query Folding จะติดตามการเปลี่ยนแปลงเหล่านั้นในคิวรีแบบเนทีฟ จากนั้นเมื่อคุณโหลดข้อมูลของคุณ การแปลงจะเกิดขึ้นอย่างอิสระในแหล่งข้อมูลต้นฉบับ ซึ่งทำให้แน่ใจว่ามีการปรับประสิทธิภาพการทำงานให้เหมาะสมแล้วใน Power BI

ประโยชน์ของ Query Folding ประกอบด้วย:

  • มีประสิทธิภาพในการรีเฟรชข้อมูลและการรีเฟรชแบบเพิ่มหน่วยมากขึ้น เมื่อคุณนําเข้าตารางข้อมูลโดยใช้ Query Folding แล้ว Power BI จะสามารถจัดสรรทรัพยากรได้ดีขึ้นและรีเฟรชข้อมูลได้รวดเร็วยิ่งขึ้นเนื่องจาก Power BI ไม่จําเป็นต้องเรียกใช้ผ่านแต่ละการแปลงภายในเครื่อง

  • การใช้งานร่วมกันโดยอัตโนมัติกับโหมดที่เก็บข้อมูล DirectQuery และแบบคู่ โหมดที่เก็บข้อมูล DirectQuery และแบบคู่ทั้งหมดจะต้องมีความสามารถในการประมวลผลเซิร์ฟเวอร์ส่วนหลังเพื่อสร้างการเชื่อมต่อโดยตรงซึ่งหมายความว่า Query Folding คือความสามารถอัตโนมัติที่คุณสามารถใช้ได้ หากคุณสามารถลดการแปลงทั้งหมดเป็นคำสั่ง Select เดียวดังนั้น Query Folding สามารถเกิดขึ้นได้

สถานการณ์สมมติต่อไปนี้แสดง Query Folding ในการดำเนินการ ในสถานการณ์นี้ คุณใช้ชุดของคิวรีไปยังตารางหลายตาราง หลังจากที่คุณเพิ่มแหล่งข้อมูลใหม่โดยใช้ Power Query แล้วคุณจะถูกนําไปยังตัวแก้ไข Power Query คุณไปที่บานหน้าต่าง การตั้งค่าคิวรี และคลิกขวาที่ขั้นตอนที่ใช้ล่าสุด ดังที่แสดงในรูปต่อไปนี้

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

ไม่สามารถทําคิวรีแบบเนทีฟสําหรับการแปลงต่อไปนี้:

  • การเพิ่มคอลัมน์ดัชนี
  • การผสานและการผนวกคอลัมน์ของตารางที่แตกต่างกันด้วยแหล่งที่มาที่แตกต่างกันสองแหล่ง
  • การเปลี่ยนแปลงชนิดข้อมูลของคอลัมน์

แนวทางที่ดีซึ่งคุณควรจดจำคือหากคุณสามารถแปลการแปลงเป็นคำสั่ง Select ในภาษา SQL ซึ่งรวมถึงโอเปอเรเตอร์และส่วนคำสั่งเช่น GROUP BY, SORT BY, WHERE, UNION ALL และ JOIN คุณสามารถใช้ Query Folding ได้

ในขณะที่ Query Folding เป็นตัวเลือกหนึ่งเพื่อปรับให้ประสิทธิภาพการทำงานดีขึ้นเมื่อดึง นำเข้า และเตรียมข้อมูล ตัวเลือกอื่นคือการวินิจฉัยคิวรี

การวินิจฉัยคิวรี

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

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

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

เครื่องมือนี้มีประโยชน์เมื่อคุณต้องการวิเคราะห์ประสิทธิภาพการทํางานด้าน Power Query สําหรับงาน เช่น การโหลดแบบจําลองความหมาย การเรียกใช้การรีเฟรชข้อมูล หรือการเรียกใช้งานแปลงอื่นๆ

เทคนิคอื่นในการปรับประสิทธิภาพให้เหมาะสม

แนวทางอื่นในการปรับประสิทธิภาพคิวรีให้เหมาะสมใน Power BI ได้แก่:

  • ประมวลผลข้อมูลมากที่สุดเท่าที่เป็นไปได้ในแหล่งข้อมูลต้นฉบับ Power Query และ Power Query Editor ช่วยให้คุณสามารถประมวลผลข้อมูลได้ อย่างไรก็ตามกำลังการประมวลผลที่จำเป็นสำหรับการทำงานนี้ให้เสร็จสิ้นอาจลดประสิทธิภาพในส่วนอื่น ๆ ของรายงานของคุณลง โดยทั่วไปแล้ว แนวทางปฏิบัติที่ดีคือการประมวลผลในแหล่งข้อมูลดั้งเดิมให้มากที่สุดเท่าที่เป็นไปได้

  • ใช้คิวรี SQL แบบเนทีฟ เมื่อใช้ DirectQuery สําหรับฐานข้อมูล SQL เช่นกรณีสําหรับสถานการณ์สมมติของเรา ตรวจสอบให้แน่ใจว่า คุณไม่ได้ดึงข้อมูลจากกระบวนงานที่เก็บไว้หรือนิพจน์ตารางทั่วไป (CTEs)

  • แยกวันที่และเวลาออก ถ้าผูกเข้าด้วยกัน ถ้าตารางใดก็ตามของคุณมีคอลัมน์ที่รวมวันที่และเวลา ให้ตรวจสอบให้แน่ใจว่าคุณได้แยกออกเป็นคอลัมน์เฉพาะก่อนที่จะนำเข้าไปยัง Power BI วิธีการนี้จะเพิ่มความสามารถในการบีบอัด

สำหรับข้อมูลเพิ่มเติม โปรดดู คำแนะนำสำหรับ Query Folding และ Query Folding