หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
เมื่อเชื่อมต่อกับแหล่งข้อมูลโดยใช้ DirectQuery คุณสามารถใช้ การเลือก ประมาณ referential integrity เพื่อเปิดใช้งานการเรียกใช้คิวรีที่มีประสิทธิภาพมากขึ้นกับแหล่งข้อมูลของคุณได้ คุณลักษณะนี้มีข้อกําหนดบางประการของข้อมูลพื้นฐาน และพร้อมใช้งานเฉพาะเมื่อใช้ DirectQuery หรือในโหมด Direct Lake ในแบบจําลองความหมายของ Microsoft Fabric เท่านั้น
Note
สมมติว่าการตั้งค่า Referential Integrity สําหรับแบบจําลองความหมายของ Microsoft Fabric สามารถตั้งค่าได้ผ่านบริการโดยใช้เว็บเบราว์เซอร์เท่านั้น ไม่สามารถตั้งค่าโดยใช้ Power BI Desktop ได้
การตั้งค่า ประมาณ referential integrity จะเปิดใช้งานคิวรีบนแหล่งข้อมูลเพื่อใช้ คําสั่ง INNER JOIN แทน OUTER JOIN ซึ่งช่วยปรับปรุงประสิทธิภาพคิวรี
ข้อกําหนดสําหรับการใช้ประมาณ referential integrity
การตั้งค่านี้เป็นการตั้งค่าขั้นสูง และจะเปิดใช้งานเมื่อเชื่อมต่อกับข้อมูลโดยใช้ DirectQuery เท่านั้น ข้อกําหนดต่อไปนี้เป็นสิ่งจําเป็นสําหรับ ประมาณ referential integrity เพื่อให้ทํางานอย่างถูกต้อง:
- ข้อมูลใน คอลัมน์ From ในความสัมพันธ์ไม่ เป็น Null หรือ ว่างเปล่า
- สําหรับแต่ละค่าในคอลัมน์ From ไม่มีค่าที่สอดคล้องกันในคอลัมน์ To
ในบริบทนี้ คอลัมน์ From คือ กลุ่มในความสัมพันธ์แบบหนึ่งต่อกลุ่ม หรือเป็นคอลัมน์ในตารางแรกในความสัมพันธ์แบบหนึ่งต่อหนึ่ง
ตัวอย่างของการใช้ประมาณ Referential Integrity
ตัวอย่างต่อไปนี้สาธิตลักษณะการทํางาน ประมาณ referential integrity เมื่อใช้ในการเชื่อมต่อข้อมูล ตัวอย่างจะเชื่อมต่อกับแหล่งข้อมูลที่มีตาราง Orders ตาราง Products และตาราง Depots
ในรูปต่อไปนี้ที่แสดงตาราง Orders และตาราง Products Referential Integrity จะมีอยู่ระหว่าง Orders[ProductID] กับ Products[ProductID] คอลัมน์ [ProductID]ในตาราง Orders จะไม่ เป็น Null และทุกค่ายังปรากฏใน ตาราง Products ด้วย ดังนั้น ประมาณ referential integrity จึงควรถูกตั้งค่าเพื่อรับคิวรีที่มีประสิทธิภาพมากขึ้น การใช้การตั้งค่านี้จะไม่เปลี่ยนแปลงค่าที่แสดงในวิชวล
ในภาพถัดไป โปรดสังเกตว่าไม่มี referential integrity เกิดขึ้นระหว่าง Orders[DepotID] กับ Depots[DepotID] เนื่องจาก DepotID เป็น Null สําหรับบาง Orders ด้วยเหตุนี้ สมมติว่าไม่ควรตั้งค่าความสมบูรณ์ของการอ้างอิง
สุดท้าย ไม่มี referential integrity เกิดขึ้นระหว่าง Orders[CustomerID] กับ Customers[CustID] ในตารางต่อไปนี้ CustomerID ประกอบด้วยค่า CustX ซึ่งไม่มีอยู่ในตาราง Customers ด้วยเหตุนี้ สมมติว่าไม่ควรตั้งค่าความสมบูรณ์ของการอ้างอิง
การตั้งค่าการประมาณ referential integrity
เพื่อเปิดใช้งานคุณลักษณะนี้ เลือก ประมาณ referential integrity ดังที่แสดงในรูปต่อไปนี้
เมื่อเลือกแล้ว การตั้งค่าจะถูกตรวจสอบกับข้อมูลเพื่อให้แน่ใจว่าไม่มี Null หรือแถวที่ไม่ตรงกัน อย่างไรก็ตาม สําหรับกรณีและปัญหาที่มีค่าจํานวนมาก การตรวจสอบความถูกต้องไม่ได้รับประกันว่าไม่มีปัญหาความสมบูรณ์ของการอ้างอิง
นอกจากนี้ การตรวจสอบความถูกต้องจะเกิดขึ้นในขณะที่แก้ไข ความสัมพันธ์ และไม่สะท้อน ถึงการเปลี่ยนแปลงข้อมูลในภายหลัง
เกิดอะไรขึ้นถ้าคุณตั้งค่าประมาณ referential integrity อย่างไม่ถูกต้อง
ถ้าคุณตั้งค่า ประมาณ referential integrity เมื่อไม่มีปัญหา referential integrity ในข้อมูล การตั้งค่านั้นจะไม่ส่งผลให้เกิดข้อผิดพลาด อย่างไรก็ตาม จะส่งผลให้เกิดความไม่สอดคล้องกันของข้อมูล ตัวอย่างเช่น สําหรับความสัมพันธ์กับตาราง Depots ที่อธิบายไว้ที่นี่ จะส่งผลดังต่อไปนี้:
- วิชวลที่แสดง Order Qty รวมจะแสดงค่า 40
- วิชวลที่แสดง Order Qty by Depot City รวมจะแสดงค่าผลรวมเพียง 30 เนื่องจากจะไม่รวม Order ID 1 ซึ่ง DepotID เป็น Null
เนื้อหาที่เกี่ยวข้อง
- เรียนรู้เพิ่มเติมเกี่ยวกับ DirectQuery
- รับข้อมูลเพิ่มเติมเกี่ยวกับ ความสัมพันธ์ใน Power BI
- เรียนรู้เพิ่มเติมเกี่ยวกับมุมมองแบบจําลองใน Power BI Desktop