Bruke innstillingen Anta referanseintegritet i Power BI Desktop
Når du kobler til en datakilde ved hjelp av DirectQuery, kan du bruke valget Anta referanseintegritet til å aktivere kjøring av mer effektive spørringer mot datakilden. Denne funksjonen har noen krav til de underliggende dataene, og den er bare tilgjengelig når du bruker DirectQuery.
Hvis du angir Anta referanseintegritet , kan spørringer på datakilden bruke INNER JOIN-setninger i stedet for YTRE SAMMENFØYNING, noe som forbedrer spørringseffektiviteten.
Krav for bruk av anta referanseintegritet
Denne innstillingen er en avansert innstilling, og er bare aktivert når du kobler til data ved hjelp av DirectQuery. Følgende krav er nødvendige for at anta referanseintegritet skal fungere på riktig måte:
- Data i Fra-kolonnen i relasjonen er aldri null eller tom
- For hver verdi i Fra-kolonnen finnes det en tilsvarende verdi i Til-kolonnen
I denne konteksten er Fra-kolonnen Mange i en én-til-mange-relasjon, eller det er kolonnen i den første tabellen i en én-til-én-relasjon.
Eksempel på bruk av anta referanseintegritet
Eksemplet nedenfor viser hvordan Anta referanseintegritet fungerer når den brukes i datatilkoblinger. Eksemplet kobles til en datakilde som inneholder en Ordre-tabell , en Produkt-tabell og en Depots-tabell .
I illustrasjonen nedenfor som viser Ordrer-tabellen og Produkter-tabellen , finnes referanseintegritet mellom Orders[ProductID] og Products[ProductID]. [ProductID]-kolonnen i Ordrer-tabellen er aldri Null, og hver verdi vises også i Produkter-tabellen. Anta derfor at referanseintegritet bør angis for å få mer effektive spørringer. Bruk av denne innstillingen endrer ikke verdiene som vises i visualobjekter.
Legg merke til at det ikke finnes noen referanseintegritet mellom Orders[DepotID] og Depots[DepotID], fordi DepotID er Null for enkelte ordrer. Anta derfor ikke referanseintegritet.
Til slutt finnes det ingen referanseintegritet mellom Orders[CustomerID] og Customers[CustID] i tabellene nedenfor. CustomerID inneholder en verdi, CustX, som ikke finnes i Kunder-tabellen. Anta derfor ikke referanseintegritet.
Angi anta referanseintegritet
Hvis du vil aktivere denne funksjonen, velger du Anta referanseintegritet som vist på bildet nedenfor.
Når dette er valgt, valideres innstillingen mot dataene for å sikre at det ikke finnes noen rader som ikke er null eller ikke samsvarende. For tilfeller med et svært stort antall verdier er imidlertid ikke valideringen en garanti for at det ikke er noen referanseintegritetsproblemer.
Valideringen skjer i tillegg på tidspunktet for redigering av relasjonen, og gjenspeiler ikke eventuelle etterfølgende endringer i dataene.
Hva skjer hvis du feilaktig angir Anta referanseintegritet?
Hvis du angir anta referanseintegritet når det er referanseintegritetsproblemer i dataene, resulterer ikke denne innstillingen i feil. Det resulterer imidlertid i tilsynelatende inkonsekvenser i dataene. For relasjonen til Depoter-tabellen som er beskrevet her, vil det for eksempel resultere i følgende:
- Et visualobjekt som viser den totale ordreantallet , viser en verdi på 40.
- Et visualobjekt som viser den totale ordreantallet etter Depot City , viser en totalverdi på bare 30, fordi det ikke ville inkludere ordre-ID 1, der DepotID er Null.
Relatert innhold
- Mer informasjon om DirectQuery.
- Få mer informasjon om relasjoner i Power BI.
- Mer informasjon om Modellvisning i Power BI Desktop.