แชร์ผ่าน


ขีดจำกัดของการสอบถาม: ขีดจำกัดการรับมอบสิทธิ์และแบบสอบถาม

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

แต่คิวรี Power Fx ไม่สามารถแปลเป็นคิวรีที่เทียบเท่ากันในทุกแหล่งข้อมูลได้เสมอไป ตัวอย่างเช่น Dataverse รองรับคุณลักษณะการสอบถามมากกว่า Excel Dataverse รองรับตัวดำเนินการคิวรี 'ใน' (การเป็นสมาชิก) แต่ Excel ไม่รองรับ คิวรีจะ ไม่สามารถรับมอบสิทธิ์ได้ ถ้าใช้คุณลักษณะที่แหล่งข้อมูลไม่สนับสนุน หากส่วนใดส่วนหนึ่งของนิพจน์คิวรีไม่สามารถมอบหมายได้ Power Apps จะไม่มอบหมายส่วนใดส่วนหนึ่งของคิวรี

เมื่อคิวรีไม่สามารถมอบหมายได้ Power Apps จะรับเรกคอร์ด 500 รายการแรกจากแหล่งข้อมูล แล้วเรียกใช้การดำเนินการในคิวรี คุณสามารถเพิ่มขีดจำกัดนี้เป็น 2,000 ระเบียน การเปลี่ยนแปลงขีดจํากัดของPower Apps จะจํากัดขนาดผลลัพธ์เป็น 500 ระเบียนเพื่อให้แอปของคุณยังทํางานได้ดี ชุดผลลัพธ์ที่ใหญ่กว่าอาจทําให้เกิดปัญหาประสิทธิภาพการทํางานสําหรับแอปและ Power Apps ของคุณ

แต่ข้อจำกัดนี้อาจเป็นปัญหาได้เนื่องจากคิวรีอาจส่งคืนผลลัพธ์ที่ไม่ถูกต้องหากแหล่งข้อมูลมีเรกคอร์ดมากกว่า 500 หรือ 2,000 เรกคอร์ด ตัวอย่างเช่น หากแหล่งข้อมูลของคุณมีเรกคอร์ด 10 ล้านเรกคอร์ด และคิวรีของคุณต้องทำงานกับส่วนสุดท้ายของข้อมูล เช่น นามสกุลที่ขึ้นต้นด้วย 'Z' และคิวรีของคุณใช้ตัวดำเนินการที่ไม่สามารถมอบหมายได้ เช่น ความแตกต่าง คุณจะได้รับเรกคอร์ด 500 หรือ 2,000 รายการแรกเท่านั้น ดังนั้น คุณได้รับผลลัพธ์ที่ไม่ถูกต้อง

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

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

หมายเหตุ

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

แหล่งข้อมูลที่มอบสิทธิ์ได้

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

นําเข้าเวิร์กบุ๊ก Excel แล้ว (โดยใช้ เพิ่มข้อมูลแบบคงที่ไปยังแหล่งข้อมูลแอป) คอลเลกชัน และตารางที่จัดเก็บไว้ในตัวแปรบริบทไม่จําเป็นต้องรับมอบสิทธิ์ ข้อมูลนี้มีอยู่แล้วในหน่วยความจํา ดังนั้นคุณใช้ภาษา Power Apps แบบเต็ม

ฟังก์ชันที่สามารถมอบสิทธิ์ได้

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

ฟังก์ชันตัวกรอง

คุณสามารถมอบสิทธิ์ Filter, Search, First และ LookUp ได้

ภายในฟังก์ชัน Filter และ LookUp ให้ใช้ฟังก์ชันเหล่านี้กับคอลัมน์ของตารางเพื่อเลือกระเบียนที่เหมาะสม:

  • And (รวมถึง &&), Or (รวมถึง ||), Not (รวมถึง !)
  • ใน> [!หมายเหตุ]

    In ถูกมอบหมายให้เฉพาะคอลัมน์บนแหล่งข้อมูลฐาน ตัวอย่างเช่น ถ้าแหล่งข้อมูลคือตาราง บัญชีFilter(Accounts, Name in ["name1", "name2"]) จะมอบหมายให้กับแหล่งข้อมูลสำหรับการประเมิน แต่ Filter(Accounts, PrimaryContact.Fullname in ["name1", "name2"]) ไม่ได้มอบหมาย เนื่องจากคอลัมน์ ชื่อเต็ม อยู่ในตารางอื่น (PrimaryContact) นอกเหนือจาก บัญชี นิพจน์จะถูกประเมินภายใน

  • =, <>=>, <=, ><
  • +, -
  • TrimEnds
  • IsBlank
  • StartsWith, EndsWith
  • ค่าคงที่ที่เหมือนกันในระเบียนทั้งหมด เช่น คุณสมบัติของตัวควบคุม และตัวแปรส่วนกลางและตัวแปรบริบท

คุณยังสามารถใช้ส่วนต่างๆ ของสูตรของคุณที่ประเมินเป็นค่าคงที่สำหรับเรกคอร์ดทั้งหมดได้ ตัวอย่างเช่น ซ้าย( ภาษา(), 2 )วันที่( 2019, 3, 31 ) และ วันนี้() ไม่ขึ้นอยู่กับคอลัมน์ใดๆ ของเรกคอร์ด ดังนั้นจึงส่งกลับค่าเดียวกันสำหรับเรกคอร์ดทั้งหมด ค่าเหล่านี้สามารถส่งไปยังแหล่งข้อมูลเป็นค่าคงที่และไม่บล็อกการมอบหมาย

รายการก่อนหน้านี้ไม่มีรายการที่โดดเด่นเหล่านี้:

การมอบสิทธิ์และการรวบรวม

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

ขีดจำกัดการสอบถาม

ค้นหาและขยายระดับ

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

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

การประเมินนิพจน์ - คุณสมบัติของเอนทิตีต้องอยู่ทางด้านซ้าย 'LHS' ของตัวดำเนินการความเท่าเทียมกัน

ใส่คุณสมบัติของเอนทิตีที่จะเปรียบเทียบทางด้านซ้ายมือ (LHS) ของสมการ ตัวอย่างเช่น ในนิพจน์ต่อไปนี้ คุณสมบัติเอนทิตี 'ID หน่วยธุรกิจ' ชื่อ อยู่บน LHS และนิพจน์ทํางาน:

Filter(
        Budgets,
        'Business unit ID'.Name = LookUp(
            Users,
            'Primary Email' = User().Email,
            'Business Unit'
        ).Name,
        DataCardValue37.Selected.'Date Range String'='Date Range String'
    )

อย่างไรก็ตาม นิพจน์นี้ใช้ไม่ได้:

 Filter(
        Budgets,
        LookUp(
            Users,
            'Primary Email' = User().Email,
            'Business Unit'
        ).Name = 'Business unit ID'.Name,
        'Date Range String'=DataCardValue37.Selected.'Date Range String'
    )

ฟังก์ชันการเรียงลำดับ

Sort และ SortByColumns สามารถรับมอบสิทธิ์ได้

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

ฟังก์ชันการรวม

ฟังก์ชันการรวมบางอย่างสามารถการมอบหมายตามการสนับสนุนส่วนหลังได้ ฟังก์ชัน เช่น Sum, Average, Min, และ Max สามารถรับมอบสิทธิ์ได้ ฟังก์ชันการนับ เช่น CountRows และ Count สามารถมอบหมายได้เช่นกัน อย่างไรก็ตาม RemoveIf และ UpdateIf มีข้อจํากัดในการมอบหมาย มีแหล่งข้อมูลจำนวนจำกัดเท่านั้นที่รองรับการมอบหมายสำหรับฟังก์ชันเหล่านี้ สำหรับข้อมูลเพิ่มเติม ดูที่ รายการในการมอบสิทธิ์

ฟังก์ชันที่ไม่สามารถมอบหมายได้

ฟังก์ชันอื่น ๆ ทั้งหมดไม่สามารถมอบสิทธิ์ได้ ฟังก์ชันที่โดดเด่นประกอบด้วย:

ขีดจำกัดที่ไม่สามารถมอบหมายได้

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

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

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

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

การเปลี่ยนแปลงขีดจำกัด

จํานวนเริ่มต้นของระเบียนคือ 500 แต่คุณสามารถเปลี่ยนหมายเลขนี้สําหรับแอปของคุณได้:

  1. เลือก การตั้งค่า
  2. ภายใต้ ทั่วไป เปลี่ยนการตั้งค่า ขีดจำกัดแถวข้อมูล จาก 1 เป็น 2000

ในบางกรณี 2,000, 1,000 หรือ 1,500 ระเบียนเพียงพอสําหรับสถานการณ์ของคุณ คุณสามารถเพิ่มตัวเลขนี้ให้เหมาะกับความต้องการของคุณ แต่เมื่อทำเช่นั้น ประสิทธิภาพของแอปของคุณอาจลดลง โดยเฉพาะอย่างยิ่งสำหรับตารางที่กว้างที่มีคอลัมน์จำนวนมาก ทางที่ดีควรมอบหมายให้มากที่สุด

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

คำเตือนการรับมอบสิทธิ์

Power Apps แสดงคำเตือน (สามเหลี่ยมสีเหลือง) เมื่อคุณสร้างสูตรที่ไม่สามารถมอบหมายได้ การทราบว่าอะไรที่ได้รับมอบและอะไรไม่ได้รับมอบนั้นเป็นเรื่องง่ายขึ้น

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

ตัวอย่าง

ในตัวอย่างนี้ คุณจะสร้างแอปแบบสามจอที่ยึดตามตาราง SQL Server ที่ชื่อ [dbo].[Fruit] โดยอัตโนมัติ หากต้องการเรียนรู้วิธีการสร้างแอป ใช้หลักที่คล้ายกันจากบทความเกี่ยวกับ Dataverse กับ SQL Server

แอปแบบสามหน้าจอ

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

ในกล่องค้นหา ให้ป้อน "Apple"

จุดเคลื่อนไหวจะปรากฏขึ้นในช่วงสั้นๆ ใกล้กับด้านบนสุดของหน้าจอ ขณะที่แอปสื่อสารกับ SQL Server เพื่อประมวลผลคำขอการค้นหา เรกคอร์ดทั้งหมดที่ตรงกับเกณฑ์การค้นหาปรากฏขึ้น แม้ว่าแหล่งข้อมูลจะมีเรกคอร์ดจำนวนมาก

ค้นหาตัวควบคุมการป้อนข้อความ

ผลลัพธ์การค้นหาประกอบด้วย "Apples" และ "Pineapple" เนื่องจากฟังก์ชัน Search ค้นหาทุกที่ในคอลัมน์ข้อความ หากต้องการค้นหาเฉพาะเรกคอร์ดที่ประกอบด้วยคำค้นหาที่จุดเริ่มต้นของชื่อของผลไม้ ใช้ฟังก์ชันที่มอบหมายสิทธิ์ได้อื่นๆ เช่น ตัวกรอง ด้วยคำค้นหาที่เฉพาะเจาะจงยิ่งขึ้นได้ เพื่อความง่าย ให้ลบการเรียกใช้ SortByColumns

ลบการเรียกใช้ SortByColumns ออก

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

วางเมาส์เหนือคำเตือนการรับมอบสิทธิ์

SQL Server เป็นแหล่งข้อมูลที่มอบหมายได้ และ Filter เป็นฟังก์ชันที่มอบหมายได้ อย่าไรก็ตาม Mid และ Len ไม่สามารถมอบหมายให้กับแหล่งข้อมูลใดๆ ได้

แต่สามารถทำงานได้ใช่หรือไม่ ทำนองนั้น ด้วยเหตุนี้จึงเป็นคำเตือน ไม่ใช่เส้นหยักสีแดง

  • ถ้าตารางมีเรกคอร์ดน้อยกว่า 500 เรกคอร์ด สูตรจะทำงานอย่างสมบูรณ์แบบ เรกคอร์ดทั้งหมดถูกนำไปยังอุปกรณ์ และ Filter ถูกนำไปใช้แบบภายใน
  • หากตารางมีเรกคอร์ดมากกว่า 500 เรกคอร์ด สูตรจะไม่ส่งกลับเรกคอร์ด 501 ขึ้นไป แม้ว่าจะตรงกับเกณฑ์ก็ตาม

ดูเพิ่มเติม