Veiledning for spørringsdelegering i Power BI Desktop

Denne artikkelen er rettet mot utviklere av importmodeller i Power BI Desktop. Artikkelen gir den beste veiledning for når og hvordan du oppnår spørringsdelegering i Power Query.

Spørringsdelegering er evnen en Power Query-spørring har til å generere en enkelt spørringssetning til å hente og transformere kildedata. For mer informasjon, kan du se Power Query spørringsdelegering.

Veiledning

Retningslinjer for spørringsdelegering er forskjellig fra modell modusen.

For en Power Query-spørringen oppnå spørringsdelegering hvis det gjelder en tabell for DirectQuery-modus eller dobbelt lagringsmodus.

For en tabell for Import, kan det være mulig å oppnå en spørringsdelegering. Når spørringen er basert på en relasjonskilde, og hvis en enkelt SELECT-setning kan konstrueres, oppnår du den beste dataoppdateringsytelsen når du sørger for at spørringsdelegering skjer. Hvis Power Query nettflettingsmotoren fremdeles er nødvendig for å behandle transformeringer, bør du prøve å begrense arbeidet den trenger å gjøre, spesielt for store datasett.

Følgende punktmerkede liste gir spesifikk veiledning.

  • Deleger så mye behandling til datakilden som mulig : Når alle trinnene i en Power Query-spørring ikke kan delegeres, kan du finne trinnet som forhindrer spørringsdelegering. Når det er mulig, flytter du etterfølgende trinn tidligere i rekkefølgen, slik at de kan bli med i spørringsdelegeringen. Merk at nettflettingsmotoren i Power Query kan være smart nok til å endre rekkefølgen på spørringstrinnene når den genererer kildespørringen.

    Hvis det gjelder en relasjonsdatakilde, bør du vurdere å bruke en opprinnelig SQL-spørring, som beskrevet nedenfor, hvis trinnet som forhindrer spørringsdelegering, kan oppnås i én enkelt SELECT-setning eller i prosedyrelogikken for en lagret prosedyre.

  • Bruk en opprinnelig SQL:Når en Power Query henter data fra en relasjonskilde, er det mulig for noen kilder å bruke en opprinnelig SQL spørring. Spørringen kan faktisk være en hvilken som helst gyldig setning, inkludert en lagret prosedyrekjøring. Hvis setningen produserer flere resultatsett, returneres bare det første. Parametere kan erklæres i setningen, og vi anbefaler at du bruker M-funksjonen Value. NativeQuery. Denne funksjonen ble utformet for sikker og praktisk sending av parameterverdier. Det er viktig å forstå at nettflettingsmotoren i Power Query ikke kan delegere etterfølgende spørringstrinn, og du må derfor inkludere all, eller like mye transformasjonslogikk i den opprinnelige spørringssetningen.

    Det er to viktige ting du må huske på når du bruker opprinnelige SQL-spørringer:

    • Hvis det gjelder en DirectQuery-modelltabell, må spørringen være en SELECT-setning, og den kan ikke bruke vanlige tabelluttrykk (CTE-er) eller en lagret prosedyre.
    • Trinnvis oppdatering kan ikke bruke en opprinnelig SQL-spørring. Den vil tvinge nettflettingsmotoren for Power Query til å hente alle kilderadene og deretter bruke filtre til å bestemme trinnvise endringer.

    Viktig!

    En opprinnelig SQL-spørring kan potensielt gjøre mer enn å hente data. En hvilken som helst gyldig setning kan kjøres (muligens flere ganger), inkludert en som endrer eller sletter data. Det er viktig at du bruker prinsippet om minimale rettigheter for å sikre at kontoen som brukes til å få tilgang til databasen, bare har lesetilgang til nødvendige data.

  • Klargjøre og transformere data i kilden : Når du identifiserer at enkelte Power Query ikke kan delegeres, kan det være mulig å bruke transformasjonene i datakilden. Transformasjonene kan oppnås ved å skrive en databasevisning som logisk transformerer kildedata. Eller ved å klargjøre og materialisering data, før Power BI spør etter den. Et relasjonsdatalager er et utmerket eksempel på forberedte data og består vanligvis av forhåndsintegrerte kilder med organisasjonsdata.

Neste trinn

Du finner mer informasjon om denne artikkelen i følgende ressurser: