Del via


Små datanyttelaster – begrens mengden data du henter

Et av de viktigste mønstrene for organisasjonsdataapper er å begrense størrelsen på dataene du henter inn i Power Apps. Hvis datanyttelastene er små, blir nesten alt annet enklere. Kontrollene for galleri og tabell gjør dette for deg automatisk når du kobler deg direkte til datakilden i egenskapen Items. Når en gallerikontroll for eksempel er koblet direkte til en ekstern datakilde, sideveksler den inn data i små trinn, for eksempel 100 oppføringer. Denne standarden utnytter det faktum at en sluttbruker sjelden egentlig har behov flere enn hundre oppføringer for en brukeroppgave.

Bruk delegering

En viktig måte å holde datanyttelasten liten på er å stole på at datakilden gjør jobben for deg før den kommer til Power Apps. Delegering skjer når Power Fx kan oversette et Power Fx-uttrykk til et spørringsuttrykk som en datakilde som Dataverse, SQL Server, SharePoint og Excel kan håndtere på egen hånd. Power Fx delegerer deretter denne spørringen, eller gir datakilden ansvaret for å utføre spørringsarbeidet, datanettflettingen, til datakilden. Datakilde produserer de riktige dataene og returnerer dem til Power Apps.

Når datakilden er bundet direkte til et galleri eller en tabell, blir dataene sidevekslet eller gitt tilbake til Power Apps i små effektive trinn på 100 oppføringer. Ulike datakilder har ulike muligheter. Dataverse har for eksempel langt flere muligheter til å filtrere data på serveren enn Excel. Et godt eksempel er CountRows og CountIf. Dataverse støtter CountRows på en begrenset måte. Dataverse beregner størrelsen på tabellen med jevne mellomrom og tar vare på denne verdien. Når CountRows kalles opp, får du denne verdien. Den trenger dermed ikke å utføre en fullstendig tabellskanning for å få det nøyaktige tallet for hvert CountRows-oppkall. Dataverse har også støtte for en nøyaktig telling med CountIf opptil 50 000 rader. Det leverer disse to ulike funksjonene, slik at til det blir enklere å opprettholde god ytelse på Dataverse-serveren. SharePoint har derimot ikke støtte for denne funksjonen. Et Power Fx-uttrykk med CountRows eller CountIf for SharePoint blir derfor ikke delegert. I stedet laster Power Apps ned et begrenset antall rader, 500–2000. Power Fx arbeider lokalt på de 500/2000 oppføringene og returnerer et resultat. Hvis dataene alltid er færre enn 500/2000 oppføringer, kan denne tilnærmingen fungere. Hvis det imidlertid er flere enn 500/2000 oppføringer, kan du få feil resultater.

Unngå for mange kolonner

Power Apps beregner som standard de faktiske kolonnene du trenger for en gitt spørring, ved hjelp av funksjonen Eksplisitt kolonnevalg. Denne funksjonen er aktivert som standard for alle nye apper. Hvis du vil aktivere funksjonen for eksplisitt kolonnevalg i lerretsappen, går du til Innstillinger > Kommende funksjoner > Forhåndsversjon og aktiverer deretter veksleknappen Eksplisitt kolonnevalg.

Forslag

Ta hensyn til følgende spørsmål og forslag for å oppnå en liten datanyttelast:

  1. Ta sikte på at standardspørringen for et galleri eller en tabell bare skal returnere omtrent 100–200 oppføringer. Hvis du bruker en spørring som kan delegeres, skjer dette automatisk. Hvis du spør etter et API eller en annen kilde som ikke støtter delegering, bruker du parametere til å finjustere resultatene.

    • Vurder å bruke en datakildebasert visning som filtrerer dataene automatisk. De fleste apper i bedriftsklassen gjør mye bruk av visninger i datakilden.
    • Vurder å bruke standard oppslags- eller filterverdier for å angi område for dataene.
    • Vurder å kreve søkeargumenter i brukergrensesnittet før du viser data.
    • Vurder disse spørsmålene for appen:
      • Hva er nødvendig på en gitt skjerm som standard?
      • Hvilke data trenger sluttbrukeren egentlig for å iverksette et gitt forretningstiltak?
      • Brukere trenger vanligvis ikke tusenvis av oppføringer på en startskjerm for å utføre en oppgave.
  2. Begynn å bygge søket for et galleri eller en tabell ved å bruke delegeringstabellene for datakilden. Velg bare funksjonene som støttes for spørringen din. Hvis spørringen ikke kan delegeres, hva kan du gjøre for å gjøre den delegerbar?