แชร์ผ่าน


ปรับรูปแบบข้อมูลการสอบถามให้เหมาะสม

รูปแบบข้อมูลการสอบถามที่ง่ายและเร็วที่สุดคือ

  1. ตารางหรือมุมมองแบบเดี่ยว
  2. กรองไว้ล่วงหน้าบนเซิร์ฟเวอร์ตามที่คุณต้องการ
  3. มีการจัดทำดัชนีของคอลัมน์อย่างถูกต้องสำหรับแบบสอบถามที่คาดไว้

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

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

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

ใช้มุมมองฝั่งเซิร์ฟเวอร์

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

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

อย่างไรก็ตาม การขยายตารางจะทำให้การทำงานช้าหากคุณมีเรกคอร์ดจำนวนมากและใช้ lookups จำนวนมากด้วย สำหรับแต่ละเรกคอร์ดในแกลเลอรี่ แอปจะต้องดำเนินการแบบสอบถามแยกกับแหล่งข้อมูลอื่นและใช้ค่า lookups ซึ่งหมายความว่าแอปอาจจำเป็นต้องเรียกใช้แบบสอบถามจำนวนมากสำหรับแต่ละเรกคอร์ด ซึ่งอาจใช้เวลานานและส่งผลต่อประสิทธิภาพของแอป การต่อต้านรูปแบบนี้บางครั้งเรียกว่าปัญหา "N ยกกำลังสอง (n^2)" หรือปัญหา "N+1"

ใช้ StartsWith หรือตัวกรอง

มีหลายวิธีในการค้นหาข้อมูลด้วย Power Fx โดยทั่วไป ให้ใช้นิพจน์ที่ใช้ประโยชน์จากดัชนี เช่น StartsWith หรือ ตัวกรอง แทนนิพจน์ที่อ่านทั้งตาราง เช่น ข้างใน ตัวดำเนินการ In นั้นใช้ได้สำหรับคอลเลกชันในหน่วยความจำ หรือหากตารางแหล่งข้อมูลภายนอกมีขนาดเล็กมาก

พิจารณาการทำข้อมูลซ้ำ

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

ข้อกำหนดด้านความถี่ในการอัปเดตข้อมูลในเครื่องขึ้นอยู่กับความต้องการทางธุรกิจของคุณ ข้อมูลสำหรับแอปของคุณต้องมีความสดใหม่เพียงใด ตัวอย่างเช่น สมมติว่าคุณทำงานให้กับ Contoso บริษัทที่ขายจักรยาน รายการจักรยานที่พร้อมใช้งานจะถูกจัดเก็บไว้ในฐานข้อมูลผลิตภัณฑ์ที่คุณสามารถเข้าถึงได้ผ่าน API ในตัวเชื่อมต่อแบบกำหนดเอง แต่สมมติว่าการเรียก API นั้นช้า คุณจึงตัดสินใจคัดลอกข้อมูลผลิตภัณฑ์และจัดเก็บไว้ในตาราง จากนั้น คุณสร้างมุมมองที่รวมตารางของคุณเข้ากับข้อมูลอื่นๆ ที่เกี่ยวข้องสำหรับแอปของคุณ คุณยังสร้างโฟลว์ Power Automate ที่ทำงานทุกวันและอัปเดตตารางของคุณด้วยข้อมูลผลิตภัณฑ์ล่าสุดจาก API จากนั้นแอปของคุณจะสามารถสืบค้นข้อมูลในเครื่องได้เร็วขึ้น และข้อมูลจะมีอายุสูงสุดเพียง 1 วันเท่านั้น

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

ข้อเสนอแนะ

เพื่อให้บรรลุเป้าหมายนี้ ให้พิจารณาคำถามและข้อเสนอแนะต่อไปนี้

  1. การที่ลูกค้าเห็นค่าข้อมูลในแกลเลอรีหรือตารางข้อมูลมีความสำคัญเพียงใด จะเป็นที่ยอมรับหรือไม่หากเลือกบันทึกก่อนแล้วจึงแสดงข้อมูลในแบบฟอร์ม
  2. มุมมองสามารถดำเนินการเบื้องต้นที่จำเป็นเพื่อดูข้อมูลในรูปแบบที่ถูกต้องได้หรือไม่
  3. คุณใช้ตัวดำเนินการ "IN" ขณะที่ "StartsWith" จะทำงานหรือไม่
  4. ข้อมูลของคุณจำเป็นต้องเป็นปัจจุบันเพียงใด มีกลยุทธ์การทำข้อมูลซ้ำที่คุณสามารถใช้เพื่อให้แบบสอบถามของคุณทำงานบนตารางเดียวตามค่าเริ่มต้นหรือไม่