Små datanyttedata – begræns mængden af data, du får

Et af de vigtigste mønstre for virksomhedsdataapps er at begrænse størrelsen af ​​de data, du henter ind i Power Apps. Hvis databelastningen er lille, bliver næsten alt andet lettere. Galleri- og tabelkontrollerne gør dette automatisk for dig, når du opretter forbindelse direkte til datakilde i ejendommen Items. For eksempel, når den er tilsluttet direkte til en ekstern datakilde, kontrollerer et galleri sider i data i små intervaller, for eksempel 100 poster. Denne standard udnytter det faktum, at en slutbruger sjældent virkelig har brug for mere end hundrede poster til en brugeropgave.

Bruge delegering

En vigtig måde at holde datadataene små på er at stole på, at datakilde udfører arbejde for dig, før det når Power Apps. Delegation er, når Power Fx kan oversætte et Power Fx-udtryk til et forespørgselsudtryk, som en datakilde såsom Dataverse, SQL Server, SharePoint, og Excel kan klare sig selv. Og så delegerer Power Fx den forespørgsel eller giver ansvaret for at udføre forespørgselsarbejdet, datamiks, til datakilde. Datakilde producerer de korrekte data og returnerer dem til Power Apps.

Når datakilde er bundet direkte til et galleri eller en tabel, så bliver dataene sideført eller afleveret dataene tilbage til Power Apps i små performante intervaller på 100 poster. Forskellige datakilder har forskellige muligheder. Dataverse har for eksempel mange flere muligheder for at filtrere data på serveren end Excel. Et godt eksempel er CountRows og CountIf. Dataverse understøtter CountRows på en begrænset måde. Dataverse beregner tabellens størrelse med jævne mellemrum og beholder denne værdi. Når CountRows kaldes, får du den værdi. På den måde behøver den ikke at udføre en fuld tabelscanning for at få det nøjagtige nummer for hvert CountRows-kald. Men Dataverse understøtter også en nøjagtig optælling med CountIf op til 50.000 rækker. Det leverer disse to forskellige funktioner som en måde at hjælpe med at bevare en god ydeevne på Dataverse-serveren. I modsætning hertil understøtter SharePoint ikke denne funktion. Så et Power Fx udtryk med CountRows eller CountIf for SharePoint er ikke delegeret. I stedet downloader Power Apps et begrænset antal rækker, 500 – 2000. Power Fx arbejder på 500/2000-posterne lokalt og returnerer et resultat. Hvis dine data altid er mindre end 500/2000 poster, kan denne tilgang fungere. Men hvis det er større end 500/2000 poster, kan du få forkerte resultater.

Undgå for mange kolonner

Som standard beregner Power Apps de faktiske kolonner, du har brug for til en given forespørgsel, ved hjælp af et funktionskald Eksplicit kolonnevalg. Denne funktion er som standard aktiveret i alle miljøer. Hvis du vil slå funktionen til explicit column selection til i lærredappen, skal du gå til Indstillinger > Kommende funktioner > Forhåndsversion> aktivere til/fra-feltet Eksplicit kolonnevalg.

Forslag

For at nå målet om en lille datanyttelast skal du overveje følgende spørgsmål og forslag:

  1. Sigt efter, at standardforespørgslen for et galleri eller en tabel kun returnerer cirka 100 – 200 poster. Hvis du bruger en delegerbar forespørgsel, sker dette automatisk. Hvis du forespørger på en API eller en anden kilde, der ikke understøtter delegering, skal du bruge parametre til at forfine resultaterne.

    • Overvej at bruge en datakilde baseret visning, der automatisk filtrerer dataene. De fleste apps i virksomhedsklasse gør stor brug af visninger på datakilde.
    • Overvej at bruge standardopslags- eller filterværdier til at omfatte dataene.
    • Overvej at kræve søgeargumenter i brugergrænsefladen, før du viser data.
    • Overvej disse spørgsmål om din app:
      • Hvad er nødvendigt på en given skærm som standard?
      • Hvilke data har slutbrugeren egentlig brug for for at foretage en given forretningshandling?
      • Brugere har generelt ikke brug for tusindvis af poster på en indledende skærm for at udføre en opgave.
  2. Begynd at bygge din forespørgsel til et galleri eller en tabel ved at bruge delegationstabellerne til din datakilde. Vælg kun de funktioner, der understøttes til din forespørgsel. Hvis din forespørgsel ikke kan delegeres, hvad kan du så gøre for at gøre den delegerbar?