หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
บทความนี้ช่วยให้คุณวินิจฉัยปัญหาด้านประสิทธิภาพการทํางานกับแบบจําลองข้อมูล Power BI DirectQuery ที่คุณพัฒนาใน Power BI Desktop หรือบริการของ Power BI บทความนี้ยังอธิบายวิธีการรับข้อมูลรายละเอียดเพื่อช่วยให้คุณปรับรายงานให้เหมาะสม
คุณควรเริ่มการวินิจฉัยปัญหาด้านประสิทธิภาพการทํางานใน Power BI Desktop แทนที่จะเป็นในบริการของ Power BI หรือเซิร์ฟเวอร์รายงาน Power BI ปัญหาด้านประสิทธิภาพการทํางานมักจะขึ้นอยู่กับระดับประสิทธิภาพของแหล่งข้อมูลต้นแบบ คุณสามารถระบุและวินิจฉัยปัญหาเหล่านี้ได้ง่ายยิ่งขึ้นในสภาพแวดล้อม Power BI Desktop ที่แยกต่างหาก โดยไม่เกี่ยวข้องกับคอมโพเนนต์เช่น เกตเวย์ภายในองค์กร
ถ้าคุณไม่พบปัญหาด้านประสิทธิภาพการทํางานใน Power BI Desktop คุณสามารถเน้นการตรวจสอบของคุณกับข้อมูลเฉพาะของรายงานในบริการของ Power BI ได้
คุณควรพยายามแยกปัญหาให้กับแต่ละวิชวลก่อนที่คุณจะดูวิชวลจํานวนมากในหน้าเดียว
ตัววิเคราะห์ประสิทธิภาพ
ตัววิเคราะห์ประสิทธิภาพเป็นเครื่องมือที่มีประโยชน์สําหรับการระบุปัญหาด้านประสิทธิภาพตลอดกระบวนการแก้ไขปัญหา ถ้าคุณสามารถระบุวิชวลเฉื่อยชาเดียวบนหน้าใน Power BI Desktop คุณสามารถใช้ตัววิเคราะห์ประสิทธิภาพเพื่อกําหนดว่าคิวรีใดที่ Power BI Desktop ส่งไปยังแหล่งข้อมูลต้นแบบ
นอกจากนี้คุณยังอาจสามารถดูการติดตามและข้อมูลการวินิจฉัยที่แหล่งข้อมูลพื้นฐานปล่อยออกมาได้ ร่องรอยดังกล่าวอาจมีข้อมูลที่เป็นประโยชน์เกี่ยวกับรายละเอียดของวิธีดําเนินการคิวรี และวิธีการปรับปรุงคิวรี
แม้ว่าจะไม่มีการติดตามจากแหล่งข้อมูล คุณสามารถดูคิวรีที่ Power BI ส่งไป พร้อมกับเวลาการดําเนินการของคิวรีเหล่านั้นได้
หมายเหตุ
สําหรับแหล่งข้อมูลที่ใช้ DirectQuery SQL ตัววิเคราะห์ประสิทธิภาพแสดงคิวรีสําหรับ SQL Server, Oracle และแหล่งข้อมูล Teradata เท่านั้น
ไฟล์การติดตาม
ตามค่าเริ่มต้น เหตุการณ์บันทึก Power BI Desktop ในระหว่างเซสชันที่กําหนดให้กับไฟล์การติดตามที่เรียกว่า FlightRecorderCurrent.trc คุณสามารถค้นหาไฟล์การติดตามสําหรับเซสชันปัจจุบันในโฟลเดอร์ AppData สําหรับผู้ใช้ปัจจุบัน ที่ <User>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces
แหล่งข้อมูล DirectQuery ต่อไปนี้เขียนคิวรีทั้งหมดที่ Power BI ส่งไปยังไฟล์การติดตาม บันทึกอาจสนับสนุนแหล่งข้อมูล DirectQuery อื่นในอนาคต
- SQL Server
- ฐานข้อมูล Azure SQL
- Azure Synapse Analytics (ชื่อเดิมคือ SQL Data Warehouse)
- Oracle
- Teradata
- SAP HANA
เมื่อต้องการเข้าถึงโฟลเดอร์ของไฟล์การติดตามใน Power BI Desktop ได้อย่างง่ายดาย ให้เลือก ไฟล์>ตัวเลือกและการตั้งค่า>ตัวเลือก แล้วเลือก การวินิจฉัย

ภายใต้คอลเลกชันบันทึกข้อมูลการหยุดทํางาน ให้เลือกลิงก์เปิดโฟลเดอร์บันทึกข้อมูลหยุดทํางาน/การติดตามเพื่อเปิด<โฟลเดอร์ User>\AppData\Local\Microsoft\Power BI Desktop\Traces
นําทางไปยังโฟลเดอร์หลักของโฟลเดอร์นั้น แล้วเปิด โฟลเดอร์ AnalysisServicesWorkspaces ซึ่งประกอบด้วยโฟลเดอร์ย่อยของพื้นที่ทํางานหนึ่งรายการสําหรับทุก ๆ อินสแตนซ์ที่เปิดของ Power BI Desktop ชื่อโฟลเดอร์ย่อยมีคําต่อท้ายจํานวนเต็ม เช่น AnalysisServicesWorkspace2058279583
แต่ละ โฟลเดอร์ AnalysisServicesWorkspace ประกอบด้วย โฟลเดอร์ย่อยข้อมูลที่ ประกอบด้วยไฟล์ การติดตาม FlightRecorderCurrent.trc สําหรับเซสชัน Power BI ปัจจุบัน โฟลเดอร์นี้จะหายไปเมื่อสิ้นสุดเซสชัน Power BI Desktop ที่เกี่ยวข้อง
คุณสามารถเปิดไฟล์การติดตามโดยใช้เครื่องมือตัวสร้างโพรไฟล์ของ SQL Server ซึ่งคุณสามารถรับเป็นส่วนหนึ่งของการดาวน์โหลดฟรีของ SQL Server Management Studio (SSMS) ได้ หลังจากที่คุณดาวน์โหลดและติดตั้ง SQL Server Management Studio แล้ว ให้เปิดตัวสร้างโพรไฟล์ของ SQL Server
วิธีการเปิดไฟล์การติดตาม
ในตัวสร้างโพรไฟล์ของเซิร์ฟเวอร์ SQL เลือกไฟล์>เปิด>ไฟล์การติดตาม
นําทางไปยังหรือใส่เส้นทางไปยังไฟล์การติดตามสําหรับเซสชัน Power BI ปัจจุบัน เช่น <User>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces\AnalysisServicesWorkspace2058279583\Data และเปิด FlightRecorderCurrent.trc
SQL Server Profiler แสดงเหตุการณ์ทั้งหมดจากเซสชันปัจจุบัน สกรีนช็อตต่อไปนี้เน้นกลุ่มของเหตุการณ์สําหรับคิวรี แต่ละกลุ่มคิวรีมีเหตุการณ์ต่อไปนี้:
Query Beginเหตุการณ์ และQuery Endซึ่งแสดงจุดเริ่มต้นและสิ้นสุดของคิวรี DAX ที่สร้างขึ้นโดยการเปลี่ยนแปลงวิชวลหรือตัวกรองใน UI ของ Power BI หรือจากการกรองหรือการแปลงข้อมูลในตัวแก้ไข Power Queryเหตุการณ์ และ
DirectQuery Endอย่างน้อยหนึ่งคู่DirectQuery Beginซึ่งแสดงคิวรีที่ถูกส่งไปยังแหล่งข้อมูลต้นแบบเป็นส่วนหนึ่งของการประเมินผลคิวรี DAX
คิวรี DAX หลายรายการสามารถเรียกใช้พร้อมกันได้ ดังนั้นเหตุการณ์จากกลุ่มที่แตกต่างกันสามารถสแทรกกันได้ คุณสามารถใช้ค่า ของ ActivityID เพื่อกําหนดว่าเหตุการณ์ใดที่อยู่ในกลุ่มเดียวกัน
คอลัมน์ต่อไปนี้ก็น่าสนใจเช่นกัน:
- ข้อมูลข้อความ: รายละเอียดข้อความของเหตุการณ์ สําหรับ
Query Beginเหตุการณ์ และQuery Endรายละเอียดคือคิวรี DAX สําหรับDirectQuery Beginเหตุการณ์ และDirectQuery Endรายละเอียดคือคิวรี SQL ที่ส่งไปยังแหล่งข้อมูลต้นแบบ ค่า TextData สําหรับเหตุการณ์ที่เลือกในปัจจุบันจะปรากฏขึ้นในบานหน้าต่างที่ด้านล่างของหน้าจอ - เวลาสิ้นสุด: เวลาเมื่อเหตุการณ์เสร็จสมบูรณ์
- ระยะเวลาระยะเวลาใช้เวลาในการเรียกใช้คิวรี DAX หรือ SQL ในหน่วยมิลลิวินาที
- ข้อผิดพลาด: ไม่ว่ามีข้อผิดพลาดเกิดขึ้นหรือไม่ ในกรณีนี้เหตุการณ์ที่แสดงเป็นสีแดง
รูปภาพก่อนหน้านี้จะจํากัดคอลัมน์ที่ดูไม่น่าสนใจบางส่วนให้แคบลง ดังนั้นคุณสามารถดูคอลัมน์ที่น่าสนใจมากขึ้นได้ง่ายยิ่งขึ้น
ทําตามวิธีการนี้เพื่อจับภาพการติดตามเพื่อช่วยในการวินิจฉัยปัญหาด้านประสิทธิภาพการทํางานที่อาจเกิดขึ้น:
เปิดเซสชัน Power BI Desktop เดียวเพื่อหลีกเลี่ยงความสับสนของโฟลเดอร์พื้นที่ทํางานหลายรายการ
ทําชุดของการกระทําที่น่าสนใจใน Power BI Desktop รวมถึงการดําเนินการเพิ่มเติมบางอย่าง เพื่อให้แน่ใจว่าเหตุการณ์ที่น่าสนใจจะใส่ลงในไฟล์การติดตาม
เปิด SQL Server Profiler และตรวจสอบการติดตาม โปรดทราบว่าการปิด Power BI Desktop จะลบไฟล์การติดตาม นอกจากนี้ การดําเนินการเพิ่มเติมใน Power BI Desktop จะไม่ปรากฏขึ้นทันที คุณต้องปิดและเปิดไฟล์การติดตามใหม่เพื่อดูเหตุการณ์ใหม่
ทําให้แต่ละเซสชันมีขนาดเล็กมาก อาจเป็น 10 วินาทีของการดําเนินการ ไม่ใช่หลายร้อย วิธีการนี้ช่วยให้ตีความไฟล์การติดตามได้ง่ายขึ้น นอกจากนี้ยังมีขีดจํากัดเกี่ยวกับขนาดของไฟล์การติดตาม ดังนั้นสําหรับเซสชันแบบยาว มีโอกาสที่เหตุการณ์ในช่วงแรกจะลดลง
รูปแบบคิวรีและคิวรี่ย่อย
รูปแบบทั่วไปของคิวรี Power BI Desktop คือการใช้การคิวรีย่อยสําหรับแต่ละตารางแบบจําลองที่การอ้างอิงคิวรี คิวรีตัวแก้ไข Power Query จะกําหนดคิวรีการเลือกย่อย ตัวอย่างเช่น สมมติว่าคุณมีตาราง TPC DS ต่อไปนี้ในฐานข้อมูลเชิงสัมพันธ์ของ SQL Server:

ในวิชวล Power BI นิพจน์ต่อไปนี้จะ SalesAmount กําหนดหน่วยวัด:
SalesAmount = SUMX(Web_Sales, [ws_sales_price] * [ws_quantity])

การรีเฟรชวิชวลจะสร้างคิวรี T-SQL ในรูปภาพต่อไปนี้ มีการคิวรีย่อยสามแบบWeb_Salesสําหรับตารางแบบจําลอง , ItemและDate_dim แต่ละคิวรีจะส่งกลับคอลัมน์ตารางแบบจําลองทั้งหมด แม้ว่าการอ้างอิงวิชวลจะอ้างอิงเพียงสี่คอลัมน์เท่านั้น
การคิวรีย่อยที่แรเงาเหล่านี้เป็นข้อกําหนดที่ชัดเจนของคิวรี Power Query การใช้คิวรีย่อยนี้ไม่ส่งผลกระทบต่อประสิทธิภาพการทํางานสําหรับแหล่งข้อมูลที่สนับสนุน DirectQuery แหล่งข้อมูล เช่น SQL Server จะปรับการอ้างอิงไปยังคอลัมน์อื่น ๆ ให้เหมาะสม
เหตุผลหนึ่งที่ Power BI ใช้รูปแบบนี้คือ เพื่อให้คุณสามารถกําหนดคิวรี Power Query เพื่อใช้คําสั่งคิวรีที่เฉพาะเจาะจงได้ Power BI ใช้คิวรีตามที่ระบุไว้ โดยไม่ต้องพยายามเขียนใหม่ รูปแบบนี้จะจํากัดการใช้คําสั่งคิวรีที่ใช้ Common Table Expressions (CTEs) และ Stored Procedure คุณไม่สามารถใช้คําสั่งเหล่านี้ในการคิวรีย่อย

ประสิทธิภาพของเกตเวย์
สําหรับข้อมูลเกี่ยวกับการแก้ไขปัญหาประสิทธิภาพการทํางานของเกตเวย์ ดูแก้ไขปัญหาเกตเวย์ - Power BI
เนื้อหาที่เกี่ยวข้อง
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ DirectQuery โปรดดูทรัพยากรต่อไปนี้:
- ใช้ DirectQuery ใน Power BI Desktop
- แหล่งข้อมูลที่ได้รับการสนับสนุนโดย DirectQuery
- แบบจําลอง DirectQuery ใน Power BI Desktop
- คำแนะนำแบบจำลอง DirectQuery ใน Power BI Desktop
คำถาม ลองถามชุมชน Power BI

