Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Antimønstre er fremgangsmåter som virker fordelaktige, men som fører til ytelsesproblemer, ressursineffektivitet og potensielle feil i arbeidsflytene dine. Ved å forstå og unngå disse antimønstrene optimaliserer du skyflytene for bedre ytelse og pålitelighet.
Unngå nestet For hver løkke
Nestet: For hver løkke kan det være ressurskrevende operasjoner i skyflyter og påvirke ytelsen og ressursforbruket.
- Kjøringstid: Nestede løkker kan raskt flerdoble totalt antall gjentakelser. Hvis du for eksempel har to løkker, hver med 10 gjentakelser, blir det totale antallet gjentakelser 10 x 10 = 100. Denne eksponentielle økningen kan forlenge kjøretiden for flyten, spesielt hvis hver iterasjon behandler store datasett eller utfører komplekse operasjoner.
- Grenser og kvoter: Power Automate håndhever grenser og kvoter, for eksempel maksimalt antall gjentakelser som er tillatt i en løkke, og den totale kjøringstiden. Nestede løkker kan raskt nærme seg disse grensene, noe som fører til flytfeil eller begrensning, spesielt når det gjelder store datasett eller hyppige kjøringer.
- Ytelsespåvirkning: Hver gjentakelse i en nestet løkke bruker prosessorkraft og minne. Etter hvert som antallet iterasjoner vokser, øker behovet for systemressurser, noe som potensielt kan bremse hele flyten.
Mer informasjon: Samtidighet, løkker og oppdelingsgrenser
Avhengig av scenariet kan du unngå nestede løkker ved å behandle relaterte poster fra en overordnet tabell. Vurder følgende:
Scenario: En ytre løkke bruker handlingen Vis rader til å hente en liste over produktkategorier fra tabellen ProductCategory der kolonnen IsPromotion er true. En indre løkke behandler deretter relaterte oppføringer fra Produkt-tabellen for hver kategori som hentes av den ytre løkken.
Alternativ tilnærming: Bruk utvidelse av OData-spørring til å effektivisere denne prosessen. Med denne metoden kan du arbeide med én For hver-løkke, som reduserer totalt antall forespørsler til Dataverse til bare ett oppkall av RetrieveMultiple.
Slik implementerer du utvidelse av OData-spørring:
- Bruk parameteren Utvid spørring til å angi navnet på oppslagskolonnen som kobler tabellen ProductCategory til Produkt-tabellen. Denne fremgangsmåten henter relaterte poster i én enkelt spørring. Du kan for eksempel angi
Products($select=ProductName,Price)for parameteren Utvid spørring. - Bruk parameteren $select til å begrense kolonnene som returneres fra den relaterte tabellen.
- Hent og behandle relevante oppføringer ved å bruke betingelser direkte på oppslagstabellens kolonner ved hjelp av parameteren Filtrer rader. Du kan for eksempel angi
IsPromotion eq truefor parameteren Utvid spørring.
Unngå uendelige løkker
Med Power Automate kan flyter utløses i det uendelige, for eksempel når flyten oppdaterer samme tabell som utløser den.
Når du lagrer en flyt som kan føre til en uendelig utløserløkke, varsles du av Power Automate.
Slik unngår du uendelige løkker:
- Bruk utløserbetingelser: Utløserbetingelser sikrer at flyten bare kjører når bestemte vilkår er oppfylt, som forhindrer unødvendige kjøringer. Implementer utløserbetingelser ved å legge til en betingelse i utløseren for å se etter bestemte verdier eller tilstander før flyten fortsetter. Hvis flyten for eksempel oppdaterer et statusfelt, kan du angi en utløserbetingelse til bare å kjøre flyten hvis statusen ikke allerede er satt til ønsket verdi.
- Avslutt flyten: En alternativ tilnærming er å stoppe flyten hvis den oppdager en tilstand som kommer til å føre til en uendelig løkke. Avslutt flyten når en bestemt betingelse oppfylles, ved hjelp av Avslutt-handlingen. Denne tilnærmingen kan brukes som en beskyttelse for å forhindre ytterligere handlinger hvis flyten er i ferd med å gå inn i en uendelig sløyfe. Hvis flyten for eksempel oppdager at den allerede har behandlet en oppføring, kan den avslutte seg selv for å unngå ny behandling.
Unngå et stort antall datatransformasjonsoperasjoner
Når du arbeider med datatransformasjoner i stor skala, bør du vurdere å bruke en ETL-prosess (extract, transform, load). Du kan for eksempel utføre dataformatering eller -valideringer og deretter skrive dataene til Dataverse, i stedet for å bruke en Power Automate-skyflyt til å lese data fra et stort Excel-regneark. Det kan være bedre å bruke Power Platform-dataflyter eller et annet ETL-verktøy.
Dataflyter håndterer store datamengder effektivt og gir bedre ytelse for ETL-oppgaver enn skyflyter. ETL-verktøy tilbyr spesialiserte funksjoner for datatransformasjon, validering og lasting, noe som kan forenkle komplekse databehandlingsoppgaver.
Hvis du vil administrere databelastning med orkestreringslogikk i skyflyter, kan du kombinere skyflyter med dataflyter. Slik gjør du det:
Aktiver dataflytoppdatering
- Handling: Bruk dataflytkoblingen i Power Automate til å utløse en oppdateringshandling og starte ETL-prosessen som er definert i dataflyten.
- Eksempel: Konfigurer en skyflyt som utløser dataflytoppdateringen basert på en tidsplan (for eksempel daglig) eller en hendelse (for eksempel når en ny fil lastes opp til en SharePoint-mappe).
Handlinger etter ETL
- Utløser: Bruk utløseren Når en dataflytoppdatering fullføres i Power Automate til å utføre handlinger etter at ETL-prosessen er fullført.
- Eksempel: Etter at dataflyten er fullført, bruker du en skyflyt til å sende varsler, oppdatere oppføringer eller utføre databehandling.
Unngå å bruke For hver løkke til å oppdatere et stort antall poster
Brukere må ofte opprette eller oppdatere tusenvis av oppføringer i en datakilde når en flyt utløses i Power Automate. Mange brukere bruker en For hver løkke til å behandle hver post sekvensielt, noe som fører til ventetid og forsinkelser.
Hvis du vil forbedre ytelsen, kan du prøve disse to tilnærmingene:
Satsvise operasjoner
- Beskrivelse: Opprett eller oppdater oppføringer satsvis. Mange koblinger og tjenester gir API-endepunkter som støtter satsvise forespørsler. Med denne fremgangsmåten kan du gruppere flere operasjoner i én enkelt HTTP-forespørsel.
- Implementering: Bruk funksjonen for satsvis operasjon til å sende flere opprettings- eller oppdateringsforespørsler samtidig. Disse operasjonene utføres sekvensielt i den rekkefølgen som er angitt i partiforespørselen. Rekkefølgen på svarene samsvarer med rekkefølgen på forespørslene i den satsvise operasjonen.
- Fordeler: Reduserer antall enkeltforespørsler som sendes til datakilden, minimerer ventetid og forbedrer ytelsen.
Parallellitet i For hver-løkke
- Beskrivelse: Aktiver parallell behandling i For hver-løkken for å håndtere flere oppføringer samtidig.
- Implementering: Konfigurer For hver-løkken slik at den behandler opptil 50 oppføringer parallelt. Denne fremgangsmåten er nyttig for tjenester som ikke støtter satsvise operasjoner.
- Fordeler: Reduserer den totale behandlingstiden betydelig ved å håndtere flere oppføringer samtidig.
Hvis du vil ha informasjon om hvordan du foretar gruppeforespørsler, kan du se følgende REST-API-dokumentasjon:
Bruk Masseoperasjoner i Dataverse
Når du arbeider med Dataverse, kan du bruke nett-API-ene for masseoperasjoner til å redusere antall handlinger som kreves, effektivisere prosessene og forbedre ytelsen.
Web-API-er for masseoperasjoner gir en klar fordel i forhold til satsvise operasjoner. Slik skiller de seg:
- Satsvise operasjoner: Selv om satsvise operasjoner posteres i én forespørsel, utføres de som flere enkeltoperasjoner. Hver operasjon i bunken behandles separat.
- Masseoperasjoner: Masseoperasjoner posteres og utføres derimot som én operasjon. Hele bulkforespørselen telles som én operasjon, noe som kan redusere antall handlinger betydelig og forbedre effektiviteten.
Slik aktiverer du masseoperasjoner:
- Bruk HTTP med Microsoft Entra ID: Du kan aktivere nett-API-en for masseoperasjoner ved hjelp av HTTP-forespørsler som er godkjent med Microsoft Entra ID.
- Bruk HTTP-koblingen med tjenestekontohavere: Du kan alternativt bruke HTTP-koblingen i Power Automate når du arbeider med tjenestekontohavere for å aktivere disse API-ene.
Vi klargjør oppføringene i JSON-format i dette eksemplet ved hjelp av Velg-handlingen:
Vi bruker deretter HTTP med Microsoft Entra ID til å postere forespørselen ved hjelp av nett-API-en for CreateMultiple:
Hvis du har 100 oppføringer i JSON-utdataene, pådrar denne fremgangsmåten seg bare én handling i stedet for 100 handlinger av typen Opprett rad i Dataverse.