Pengehadan pertanyaan: Had perwakilan dan pertanyaan

Memahami delegasi

Power Apps Paling sesuai berfungsi dengan sumber data bahagian belakang apabila Power Fx pertanyaan boleh diterjemahkan sepenuhnya ke dalam pertanyaan setara yang boleh dijalankan pada sumber data. Power Apps Menghantar pertanyaan yang sumber data fahami, pertanyaan dilaksanakan pada sumber data dan hasil pertanyaan dikembalikan kepada Power Apps. Sebagai contoh, sumber data mungkin melakukan kerja menapis data pada sumber data dan hanya mengembalikan baris yang memenuhi kriteria penapis. Apabila ini berfungsi dengan betul, kami mengatakan bahawa pertanyaan diwakilkan kepada sumber data untuk melakukan kerja pertanyaan .

Walau bagaimanapun, Power Fx pertanyaan tidak boleh selalu diterjemahkan ke dalam pertanyaan yang setara pada semua sumber data. Contohnya, Dataverse menyokong lebih banyak ciri pertanyaan daripada Excel. Dataverse menyokong operator pertanyaan 'dalam' (keahlian) dan Excel tidak. Kami mengatakan pertanyaan tidak boleh dipertikaikan jika pertanyaan menggunakan ciri yang tidak disokong oleh sumber data. Secara umum, jika mana-mana bahagian ungkapan pertanyaan tidak boleh diwakilkan, kami tidak mewakilkan mana-mana bahagian pertanyaan.

Apabila pertanyaan tidak boleh diwakilkan,hanya Power Apps mendapat 500 rekod pertama daripada sumber data dan kemudian lakukan tindakan dalam pertanyaan. Had ini boleh dinaikkan kepada 2,000 rekod Mengubah had had saiz hasil kepada 500 rekod Power Apps untuk mengekalkan prestasi Power Apps yang baik. Kami mendapati melalui percubaan yang set hasil yang lebih besar daripada saiz ini memperkenalkan isu prestasi untuk apl anda dan Power Apps secara umum.

Walau bagaimanapun, batasan ini boleh menjadi masalah kerana pertanyaan mungkin mengembalikan hasil yang salah jika data pada sumber data melebihi rekod 500/2000. Contohnya, pertimbangkan contoh di mana sumber data anda mempunyai 10 Juta rekod dan pertanyaan anda perlu beroperasi pada bahagian terakhir data. (Contohnya, nama keluarga yang bermula dengan 'Z') Walau bagaimanapun, pertanyaan anda mempunyai operator yang tidak boleh dipertikaikan di dalamnya (contohnya, berbeza.) Dalam kes ini, anda hanya mendapat 500/2000 rekod pertama dan anda mempunyai hasil yang salah.

Cipta pertanyaan anda menggunakan jadual boleh delegable untuk sumber data anda Power Fx . Anda hanya perlu menggunakan fungsi pertanyaan yang boleh diwakilkan. Ini satu-satunya cara untuk memastikan apl anda berfungsi dengan baik dan memastikan pengguna dapat mengakses semua maklumat yang mereka perlukan.

Perhatikan amaran perwakilan yang mengenal pasti tempat-tempat perwakilan tidak boleh lakukan. Jika anda mengendalikan set data kecil (kurang daripada 500 rekod), anda boleh menggunakan sebarang sumber data dan formula kerana aplikasi boleh memproses data secara setempat jika formula tidak dapat diwakilkan.

Nota

Amaran perwakilan membantu anda mengurus aplikasi anda sehingga mempunyai hasil yang betul. Jika data dalam sumber data anda melebihi 500 rekod dan fungsi tidak boleh diwakilkan, Power Fx akan menandakan formula dengan garis bawah biru.

Sumber data boleh ditugaskan

Perwakilan disokong untuk sumber data tabular tertentu sahaja. Jika sumber data menyokong perwakilan, dokumentasi penyambung menggariskan sokongan tersebut. Sebagai contoh, sumber data tabular ini adalah yang paling popular dan mereka menyokong perwakilan:

Buku kerja Excel yang diimport (menggunakan Tambah data statik kepada aplikasi sumber data anda), koleksi dan jadual disimpan dalam pemboleh ubah konteks tidak memerlukan perwakilan. Semua data ini adalah tersedia dalam memori dan bahasa Power Apps penuh boleh digunakan.

Fungsi yang boleh diwakilkan

Langkah seterusnya adalah hanya menggunakan formula yang boleh diwakilkan. Termasuk di sini adalah elemen formula yang dapat diwakilkan. Walau bagaimanapun, setiap sumber data berbeza dan tidak semuanya menyokong semua elemen ini. Semak amaran perwakilan dalam formula tertentu anda.

Fungsi penapis

Penapis, Carian, ... Pertama dan Carian ... boleh diwakilkan.

Dalam fungsi Penapis dan Carian, anda boleh menggunakan ini dengan lajur jadual untuk memilih rekod yang sesuai:

  • Dan (termasuk &&), Atau (termasuk ||), Bukan (termasuk !)
  • Dalam

    Nota

    Dalam hanya diwakilkan untuk lajur pada sumber data asas. Sebagai contoh, jika sumber data adalah jadual Akaun maka Filter(Accounts, Name in ["name1", "name2"]) mewakilkan kepada sumber data untuk penilaian. Walau bagaimanapun, Filter(Accounts, PrimaryContact.Fullname in ["name1", "name2"]) tidak mewakilkan sejak lajur Fullname pada jadual yang berbeza (PrimaryContact) daripada Akaun. Ungkapan itu dinilai secara tempatan.

  • =, <>, >=, <=, >, <
  • +, -
  • TrimEnds
  • IsBlank
  • StartsWith, EndsWith
  • Nilai pemalar yang sama merentasi semua rekod seperti sifat kawalan dan global serta pemboleh ubah konteks.

Anda juga boleh menggunakan bahagian formula anda yang dinilai menjadi nilai pemalar untuk semua rekod. Sebagai contoh, Kiri( Bahasa(), 2 ), Tarikh( 2019, 3, 31 ) dan Hari ini() jangan bergantung pada sebarang lajur rekod dan, oleh itu, kembalikan nilai yang sama untuk semua rekod. Nilai ini boleh dihantar ke sumber data sebagai pemalar dan tidak akan menyekat perwakilan.

Senarai sebelum ini tidak termasuk item ketara ini:

Pengehadan pertanyaan

Aras carian

Power Apps menyokong dua tahap carian. Ini bermakna Power Fx ungkapan pertanyaan boleh mempunyai - paling banyak - dua fungsi carian di dalamnya. Had ini adalah untuk mengekalkan prestasi. Jika ungkapan pertanyaan termasuk carian,mula-mula Power Apps lakukan pertanyaan untuk mendapatkan jadual asas. Kemudian, ia melakukan pertanyaan kedua yang mengembangkan jadual pertama dengan maklumat carian. Kami menyokong satu lagi tahap melebihi itu sebagai maksimum. Walau bagaimanapun, untuk luar talian, kami hanya menyokong satu tahap pengembangan carian.

Penilaian ungkapan - harta entiti mesti berada di sebelah kiri 'LHS' pengendali kesamarataan

Adalah penting untuk meletakkan harta entiti untuk dibandingkan dalam ungkapan di sebelah kiri 'LHS' persamaan. Untuk menggambarkan, dalam contoh di bawah ID unit perniagaan harta entiti ' . Nama ialah nilai harta dan ia mesti diletakkan pada LHS ungkapan untuk dinilai. Ungkapan berikut berjaya:

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

Walau bagaimanapun, ungkapan ini tidak akan:

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

Fungsi penyisihan

Isih dan SortByColumns boleh diwakilkan.

Dalam Isih, formula hanya boleh menjadi nama bagi lajur tunggal dan tidak boleh menyertakan pengendali atau fungsi lain.

Fungsi agregat

Sesetengah fungsi agregat boleh diwakilkan bergantung pada sokongan pada bahagian belakang. Jumlah, Purata, Min dan Maks boleh diwakilkan. Fungsi pengiraan seperti CountRows dan Count juga boleh diwakilkan. Hanya sebilangan sumber data yang terhad yang menyokong fungsi ini untuk delegasi pada masa ini. Untuk maklumat lanjut, lihat, Senarai delegasi.

RemoveIf dan UpdateJika sokongan perwakilan berada dalam Eksperimen dan dimatikan secara lalai.

Fungsi yang tidak boleh diwakilkan

Semua fungsi lain tidak menyokong perwakilan termasuk fungsi ketara ini:

Had yang tidak boleh dipertikaikan

Formula yang tidak boleh diwakilkan akan diproses secara tempatan. Pemprosesan tempatan membolehkan keluasan Power Apps penuh bahasa formula digunakan. Tetapi dengan harga: semua data harus dibawa ke peranti terlebih dahulu yang mungkin terlibat mendapatkan kembali sejumlah besar data melalui rangkaian. Itu boleh mengambil masa, memberi tanggapan yang aplikasi anda adalah lambat atau mungkin rosak.

Untuk mengelakkan perkara ini, Power Apps mengenakan had jumlah data yang boleh diproses secara tempatan: 500 rekod secara lalai. Kami memilih nombor ini supaya anda masih mempunyai akses lengkap ke set data kecil dan anda akan dapat memperhalusi penggunaan set data besar anda dengan melihat hasil separa.

Jelas sekali, penjagaan mesti diambil ketika menggunakan fasiliti ini kerana boleh mengelirukan pengguna. Sebagai contoh, pertimbangkan fungsi Penapis dengan formula pemilihan yang tidak oleh diwakilkan melalui sumber data yang mengandungi sejuta rekod. Oleh sebab penapisan dilakukan secara tempatan, hanya 500 rekod pertama yang diimbas. Jika rekod yang dikehendaki ialah rekod 501 atau 500,001, ia tidak dipertimbangkan atau dikembalikan oleh Penapis.

Fungsi agregat juga boleh menyebabkan kekeliruan. Ambil Purata ke atas lajur sumber data berjuta rekod yang sama. Purata tidak boleh ditugaskan dalam kes ini kerana ungkapan tidak ditugaskan (lihat nota tadi), jadi hanya 500 rekod pertama akan dipuratakan. Jika anda tidak berhati-hati, jawapan separa boleh disalahtaksifkan sebagai jawapan lengkap oleh pengguna aplikasi anda.

Mengubah had

500 adalah bilangan rekod lalai tetapi anda boleh mengubah nombor ini untuk keseluruhan aplikasi:

  1. Pilih Tetapan.
  2. Secara Umum, tukar Tetapan had baris data daripada 1 ke 2000.

Dalam sesetengah kes, anda tahu bahawa 2,000 (atau 1,000 atau 1,500) akan memenuhi keperluan senario anda. Dengan berhati-hati, anda boleh meningkatkan nombor ini untuk disesuaikan dengan senario anda. Semasa anda menambah nombor ini, prestasi aplikasi anda mungkin menurun terutama untuk jadual lebar dengan banyak lajur. Namun, jawapan terbaik adalah mewakilkan sebanyak yang anda boleh.

Untuk memastikan apl anda boleh diskalakan kepada set data yang besar, kurangkan tetapan ini kepada 1. Apa sahaja yang tidak boleh diwakilkan akan mengembalikan rekod tunggal yang mudah dikesan semasa menguji aplikasi anda. Ini dapat membantu mengelakkan kejutan ketika cuba mengambil aplikasi konsep bukti ke produksi.

Amaran perwakilan

Untuk memudahkan bagi mengetahui perkara yang sedang dan tidak diwakilkan, Power Apps memberikan amaran (segitiga kuning) apabila anda mencipta formula yang mengandungi sesuatu yang tidak boleh diwakilkan.

Amaran perwakilan hanya muncul pada formula yang beroperasi pada sumber data yang boleh diwakilkan. Jika anda tidak melihat amaran dan anda percaya formula anda tidak diwakilkan dengan betul, semak jenis sumber data terhadap senarai sumber data yang boleh dipertikaikan sebelum ini dalam artikel ini.

Contoh

Untuk contoh ini, anda akan menjana aplikasi tiga skrin secara automatik berdasarkan pada jadual SQL Server yang dinamakan [dbo].[Fruit]. Untuk maklumat tentang cara menjana aplikasi, anda boleh menggunakan prinsip yang sama dalam artikel tentang Dataverse SQL Server.

Aplikasi tiga skrin.

Sifat Item galeri ditetapkan kepada formula yang mengandungi fungsi SortByColumns dan Carian, kedua-dua boleh diwakilkan.

Dalam kotak carian, taipkan "Epal".

Titik berbaris muncul seketika di bahagian atas skrin ketika aplikasi berkomunikasi dengan SQL Server untuk memproses permintaan carian. Semua rekod yang memenuhi kriteria carian muncul walaupun sumber data mengandungi berjuta-juta rekod.

Kawalan input teks carian.

Hasil carian termasuk "Epal" dan "Nanas" kerana fungsi Carian kelihatan di merata-rata tempat dalam lajur teks. Jika anda mahu mencari rekod yang mengandungi istilah carian sahaja pada permulaan nama buah, anda boleh menggunakan fungsi boleh ditugaskan lain, Penapis, dengan istilah carian yang lebih rumit. (Untuk kesederhanaan, alih keluar panggilan SortByColumns.)

Alih keluar panggilan SortByColumns.

Hasil baharu termasuk "Epal" tetapi bukan "Nanas". Walau bagaimanapun, segi tiga kuning akan muncul di sebelah galeri (dan dalam imej kecil skrin jika bar navigasi kiri menunjukkan imej kecil) dan garis biru bergelombang akan muncul di bawah sebahagian formula. Setiap elemen ini menunjukkan amaran. Jika anda menuding ke atas segi tiga kuning di sebelah galeri, mesej ini akan muncul:

Tuding ke atas amaran perwakilan.

SQL Server adalah sumber data boleh diwakilkan dan Penapis adalah fungsi boleh diwakilkan, Walau bagaimanapun, Mid dan Panjang tidak boleh diwakilkan kepada sebarang sumber data.

Tetapi ia berjaya, bukan? Baiklah. Dan sebab itulah ini amaran dan bukan coretan merah bergelombang.

  • Jika jadual mengandungi kurang daripada 500 rekod, formula berfungsi dengan sempurna. Semua rekod dibawa ke peranti dan Penapis digunakan secara tempatan.
  • Jika jadual mengandungi lebih daripada 500 rekod, formula tidak akan mengembalikan rekod 501 atau lebih tinggi walaupun sepadan dengan kriteria.

Lihat juga

Kesan menggunakan fungsi tidak boleh ditugaskan dan had baris data tidak sesuai pada prestasi
Petua dan amalan terbaik prestasi untuk menggunakan penugasan

Nota

Adakah anda boleh memberitahu kami tentang keutamaan bahasa dokumentasi anda? Jawab tinjauan pendek. (harap maklum bahawa tinjauan ini dalam bahasa Inggeris)

Tinjauan akan mengambil masa lebih kurang tujuh minit. Tiada data peribadi akan dikumpulkan (pernyataan privasi).