Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met DirectQuery in Power BI kunt u gegevens in de bron bewaren en query's uitvoeren op het moment van het rapport in plaats van deze te importeren. In dit artikel wordt uitgelegd wanneer u DirectQuery, de beperkingen en alternatieven zoals hybride tabellen, Direct Lake en liveverbindingen gebruikt, zodat u de juiste modus kunt kiezen.
In dit artikel wordt het volgende beschreven:
- Power BI-modi voor gegevensconnectiviteit en waar DirectQuery past
- Wanneer gebruikt u DirectQuery versus Importeren, hybride tabellen, Direct Lake of een liveverbinding
- Beperkingen, implicaties en prestatieoverwegingen
- Aanbevelingen voor modellering en rapportontwerp
- Prestaties diagnosticeren en verbeteren
Notitie
DirectQuery is ook een functie van SQL Server Analysis Services. Hoewel er overeenkomsten zijn, richt dit artikel zich op DirectQuery met semantische Power BI-modellen.
Zie Samengestelde modellen gebruiken in Power BI Desktop voor meer informatie over samengestelde modellen. Download de PDF DirectQuery in SQL Server 2016 Analysis Services van Microsoft.
Handleiding voor snelle beslissingen
De volgende tabel bevat een overzicht van de power BI-connectiviteitsmodus die moet worden overwogen op basis van uw vereisten. Gebruik het als snelzoekgids om te kiezen tussen Importeren, DirectQuery, Hybride tabellen, Direct Lake of liveverbindingen:
| Als u dat nodig hebt | Overweeg eerst | Waarom |
|---|---|---|
| Maximale flexibiliteit voor interactiviteit en volledige transformatie | Import | In-memory columnar engine en uitgebreide modelleringsfuncties |
| Bijna realtime wijzigingen in recente feitengegevens plus historische context | Hybride tabel (Import- en DirectQuery-partitie) | Query's voor dynamische gegevens en historische gegevens in de cache. |
| Grote lakehouse- of magazijnschaal met leesbewerkingen met lage latentie (Fabric) | Direct Lake | Geplande vernieuwing overslaan en importgedrag behouden |
| Federatieve toegang tot meerdere externe bronnen zonder volledige opname | DirectQuery (samengesteld model) | Laat gegevens op hun plaats en combineert bronnen. |
| Centraal beheerd ondernemingsmodel dat al is gepubliceerd | Liveverbinding met semantisch datamodel of Microsoft Analysis Services | Gebruikt gecureerd model opnieuw en vermijdt duplicatie. |
| Parameters pushen naar bron tijdens runtime (door gebruikers gestuurd filteren) | DirectQuery met dynamische M-parameters | Vermindert gescande gegevens en verbetert de prestaties. |
| Problemen met hoge gelijktijdigheid en afstandslatentie | Importeren of aggregaties over DirectQuery | Aggregaties versnellen gebruikelijke queries |
Power BI-modi voor gegevensconnectiviteit
Power BI maakt verbinding met veel gegevensbronnen:
- Onlineservices zoals Salesforce en Dynamics 365
- Databases zoals SQL Server, PostgreSQL, MySQL, Oracle, Snowflake en Amazon Redshift
- Bestanden (Excel, CSV, JSON, Parquet)
- Big data- en analyse-engines zoals Spark en Databricks
- Andere bronnen, zoals websites en Microsoft Exchange
Importeer gegevens uit deze bronnen. Sommige bieden ook ondersteuning voor DirectQuery. Zie Power BI-gegevensbronnen voor een onderhouden lijst. DirectQuery-bronnen leveren doorgaans interactieve geaggregateerde queryprestaties.
Gebruik standaard importeren. Het maakt gebruik van de krachtige in-memory engine van Power BI en biedt de rijkste functieset. Stap verder dan importeren wanneer specifieke beperkingen (latentie, grootte, governance, beveiliging of architectuur) dit vereisen.
Moderne verbeteringen, hybride tabellen, Direct Lake, automatische aggregaties, samengestelde modellen en incrementeel vernieuwen, verminderen hoe vaak u pure DirectQuery nodig hebt.
In de volgende secties worden de modi Import, DirectQuery en liveverbindingen beschreven. De rest van het artikel is gericht op DirectQuery, terwijl alternatieve benaderingen worden erkend.
Verbindingen importeren
Wanneer u gegevens importeert:
- Gegevensselecties definiëren query's voor elke tabelset; u kunt ze bewerken (filteren, aggregeren, samenvoegen) voordat u ze laadt in het systeem.
- Alle gegevens die door deze query's zijn gedefinieerd, worden geladen in de cache in het geheugen van het semantische model.
- Het bouwen van visuals voert alleen query's uit op de gegevens in de cache, snel en volledig interactief.
- Visuals weerspiegelen pas bronwijzigingen als u vernieuwt (opnieuw importeren).
- Als u publiceert, wordt een semantisch model met de geïmporteerde gegevens geüpload. U kunt het vernieuwen plannen (afhankelijk van de licentie) en mogelijk heeft u een on-premises gegevensgateway nodig.
- Bij het bouwen of openen van rapporten in de service worden de geïmporteerde gegevens gebruikt.
- Vastgemaakte dashboardtegels worden vernieuwd wanneer het semantische model wordt vernieuwd.
DirectQuery-verbindingen
Wanneer u DirectQuery gebruikt:
- Gegevens ophalen brengt een verbinding tot stand met een ondersteunde bron. Voor relationele bronnen kunt u nog steeds tabellen of weergaven selecteren; voor multidimensionale bronnen (bijvoorbeeld SAP BW) selecteert u het bronmodel.
- Er worden geen gegevens geïmporteerd tijdens de laadtijd. Elke visual activeert een of meer query's naar de onderliggende bron.
- De latentie voor het vernieuwen van visuals is volledig afhankelijk van de onderliggende bronprestaties (en de overhead van de netwerk/gateway, indien van toepassing).
- Wijzigingen in brongegevens worden pas weergegeven nadat acties opnieuw worden uitgevoerd (navigatie, slicer-/filterwijzigingen, handmatig vernieuwen).
- Publiceren maakt een semantische modeldefinitie (schema en metagegevens) zonder geïmporteerde gegevens.
- Rapporten binnen de service raadplegen de bron. Mogelijk is een gateway vereist voor on-premises bronnen.
- Dashboardtegels op basis van DirectQuery-modellen worden vernieuwd volgens een schema om tegelresultaten te cachen, zodat het dashboard snel geopend kan worden.
- Dashboardtegels tonen de resultaten van de laatste geplande vernieuwing, tenzij handmatig vernieuwd.
Liveverbindingen
Een liveverbinding verbindt Power BI rechtstreeks met een bestaand semantisch model (bijvoorbeeld Analysis Services of een ander gepubliceerd semantisch Power BI-model). Het is vergelijkbaar met DirectQuery (geen geïmporteerde gegevens), maar semantiek (zoals het afdwingen van rollen) wordt verwerkt door het upstream-model. Wanneer u live verbinding maakt:
- De volledige lijst met velden voor externe modellen wordt weergegeven, geen Power Query-querydefinitie.
- Liveverbindingen geven altijd de identiteit van de gebruiker door aan Analysis Services of het semantische Power BI-model voor beveiligingsbeperkingen.
- Sommige modelleringsactiviteiten (zoals het toevoegen van berekende tabellen) zijn niet beschikbaar omdat het model extern is.
Waar DirectQuery past bij nieuwere opties
DirectQuery was de primaire oplossing voor zeer grote of snel veranderende gegevens die u niet efficiënt kon importeren. Vandaag:
- Met hybride tabellen kunt u in-memory en DirectQuery-partities combineren in één tabel (recent versus historisch).
- Direct Lake (Fabric) biedt bijna realtime toegang tot lakehouse-tabellen zonder traditionele vernieuwingsoverhead.
- Automatische aggregaties en handmatige aggregatietabellen versnellen het uitvoeren van frequente zoekopdrachten.
- Met incrementele verversing met realtime kan DirectQuery het meest recente tijdvenster gebruiken terwijl oudere gegevens geïmporteerd blijven.
Evalueer deze opties voordat u een volledig DirectQuery-model gaat gebruiken.
DirectQuery-gebruiksvoorbeelden
DirectQuery is het nuttigst wanneer:
- Gegevens worden te vaak gewijzigd voor import (zelfs bij incrementeel vernieuwen en de maximale geplande vernieuwingsfrequentie) en u hebt een lage latentie-zichtbaarheid nodig.
- Gegevensvolume- of governancebeperkingen maken volledige opname onpraktisch.
- Brongebaseerde beveiliging (fijnmazige rijregels) moet via passthrough gezaghebbend blijven.
- Gegevenssoevereiniteit of regelgeving beperkt permanente volledige kopieën.
- De bron is multidimensionaal of metinggericht (zoals SAP BW) en door de server gedefinieerde metingen moeten per visual worden omgezet.
Gegevens worden regelmatig gewijzigd en u hebt bijna realtime rapportage nodig
Geïmporteerde modellen (Pro) kunnen maximaal 8 vernieuwingen per dag plannen (plus triggers op aanvraag/API). Premium en PPU ondersteunen maximaal 48 geplande vernieuwingen per dag, plus incrementele vernieuwing en realtime DirectQuery voor de nieuwste partitie (hybride). Gebruik DirectQuery, Hybride tabellen of Direct Lake als aan uw vereiste latentie nog steeds niet kan worden voldaan, of als volledig importeren onhaalbaar is. DirectQuery-dashboards kunnen tegels zo vaak vernieuwen als elke 15 minuten.
Gegevens zijn groot
Het volledige importeren kan het geheugen overschrijden of vensters vernieuwen. DirectQuery voert query's in situ uit op gegevens. Als de bron te traag is voor interactieve prestaties, kunt u het volgende overwegen:
- Alleen geaggregeerde of gefilterde subsets importeren.
- Incrementeel vernieuwen en aggregaties gebruiken.
- Hybride tabellen of Direct Lake gebruiken voor recente en hoogwaardige segmenten.
Zie Grote semantische modellen in Power BI Premium voor het beheren van grote in-memory gegevens.
Door bron afgedwongen beveiliging
Importeren is afhankelijk van Power BI-referenties plus optionele beveiliging op rijniveau (RLS) die zijn gedefinieerd in het semantische model. DirectQuery kan (indien ondersteund) gebruikersidentiteit (SSO) doorgeven, zodat de bron zijn eigen beveiligingsregels afdwingt. Zie Overzicht van eenmalige aanmelding (SSO) voor on-premises gegevensgateways in Power BI.
Beperkingen voor gegevenssoevereiniteit
Wanneer voorschriften vereisen dat gegevens binnen een gecontroleerde grens blijven, beperkt DirectQuery het aantal opgeslagen kopieën. Visual- en tegelcaches kunnen nog steeds beperkte geaggregeerde gegevens bevatten.
Bron met door de server gedefinieerde metingen
Sommige systemen (zoals SAP BW) bevatten semantische logica (metingen en hiërarchieën) die u tijdens het uitvoeren van query's oplost. DirectQuery maakt resolutie per visueel element mogelijk. Zie DirectQuery en SAP BW en DirectQuery en SAP HANA.
Bronspecifieke overwegingen (inclusief PostgreSQL en MySQL)
Gedrag en prestaties verschillen per engine:
- PostgreSQL: Identifiers tussen aanhalingstekens zijn hoofdlettergevoelig. Zorg ervoor dat er juiste b-tree-indexen zijn voor join- en filterkolommen. Vermijd functies die het vouwen van query's vroeg onderbreken. Controleer op impliciete casts voor tekst en numerieke joins.
-
MySQL: Gebruik consistente sorteringen en SQL-modi. Samengestelde indexen maken voor algemene filter- en joinpatronen. Grote
TEXTkolommen kunnen het vouwen verminderen of postverwerking afdwingen. - Snowflake, BigQuery en Databricks: Elastisch schalen verbetert gelijktijdigheid, maar latentie bij koude start kan van invloed zijn op de eerste query. Verstuur warming-up pings of plan periodieke activiteiten.
- Azure Synapse, SQL en Fabric Warehouse: Columnstore-indexen en caching van resultatensets bieden sterke versnelling. Koppel ze aan automatische aggregaties.
- Azure Data Explorer: Projectie-filtering is belangrijk. Selecteer alleen de vereiste kolommen en pas filters vroeg toe.
- SAP BW en SAP HANA: Metingen en hiërarchie-semantiek bepalen querypatronen. Vermijd transformaties met lagen die vouwen blokkeren.
Bevestig het vouwen van query's (selecteer Systeemeigen query weergeven in De Power Query-editor), zodat transformaties omlaag worden gepusht.
Beperkingen voor DirectQuery
Het gebruik van DirectQuery heeft gevolgen voor consistentie, prestaties, beveiliging, transformaties, modellering en rapportage.
Algemene implicaties
De volgende algemene gevolgen zijn van toepassing bij het gebruik van DirectQuery in Power BI:
- Vernieuwen om de meest recente gegevens weer te geven. Caches (visual, tegel, resultaat) zorgen ervoor dat een visuele weergave eerdere resultaten kan weergeven totdat deze wordt vernieuwd. Selecteer Vernieuwen om alle visuals op een pagina opnieuw op te vragen.
- Visuals zijn niet altijd tijdsconsistent. Verschillende visuals (of interne query's in één visual) kunnen op enigszins verschillende momenten worden uitgevoerd. Vernieuw de pagina of ontwerp geaggregeerde momentopnamen als strikte nauwkeurigheid van een bepaald tijdstip is vereist.
- Voor schemawijzigingen moet Power BI Desktop worden vernieuwd. De service detecteert niet automatisch verwijderde of hernoemde kolommen. Open het model in Power BI Desktop en vernieuw het om modelmetagegevens af te stemmen.
- Tussenliggende resultaatlimiet van één miljoen rijen. Elke query (of tussenliggende bewerking) die meer dan 1.000.000 rijen retourneert, mislukt. Premium-capaciteiten kunnen deze limiet verhogen: zie Maximumaantal tussenliggende rijensets.
- Het wijzigen van de opslagmodus is beperkt. U kunt een alleen-importmodel niet globaal overzetten naar DirectQuery. Bekijk de volgende sectie.
Belangrijk
Omdat de engine die gegevens opslaat en opvraagt in Power BI niet hoofdlettergevoelig is, moet u er speciaal voor zorgen wanneer u in de DirectQuery-modus met een hoofdlettergevoelige bron werkt. In Power BI wordt ervan uitgegaan dat de bron dubbele rijen heeft geëlimineerd. Omdat Power BI niet hoofdlettergevoelig is, worden twee waarden behandeld die alleen per geval verschillen als duplicaat, terwijl de bron deze mogelijk niet als zodanig behandelt. In dergelijke gevallen is het uiteindelijke resultaat niet gedefinieerd.
Om deze situatie te voorkomen, kunt u, als u de DirectQuery-modus gebruikt met een hoofdlettergevoelige gegevensbron, hoofdlettergebruik normaliseren in de bronquery of in de Power Query-editor.
Opslagmodi wijzigen (DirectQuery importeren ↔)
U kunt een volledig importmodel niet in-/uitschakelen naar DirectQuery. In plaats van:
- Voeg een nieuwe DirectQuery-verbinding toe aan dezelfde bron en wijs visuals toe aan nieuwe tabellen.
- Een samengesteld model maken: importdimensies behouden, DirectQuery-feitentabellen toevoegen (of omgekeerd) en eventueel enkele tabellen instellen op Dual.
- Gebruik hybride tabellen (recente DirectQuery-partities en historische import) voor dynamische en koude optimalisatie.
- Herbouwen met vouwvriendelijke transformaties als eerdere stappen DirectQuery voorkomen.
Notitie
Afzonderlijke tabellen die via een directQuery-compatibele verbinding worden toegevoegd, kunnen schakelen tussen DirectQuery, Import en Dual als alle toegepaste transformaties nog steeds worden gevouwen.
Gevolgen voor prestaties en belasting
Interactieve prestaties zijn afhankelijk van de bronlatentie en gelijktijdigheid. Streven naar algemene vernieuwingstijden van visuele elementen minder dan 5 seconden; meer dan 30 seconden verslechtert de bruikbaarheid. Elke gebruikersactie veroorzaakt queries. Hoge aantallen gebruikers-, visual- en tegelvernieuwingen kunnen aanzienlijke belasting creëren. Stem de capaciteit hierop af.
Gevolgen voor beveiliging
Tenzij SSO is geconfigureerd, gebruikt DirectQuery de geconfigureerde opgeslagen referentie voor alle kijkers. Definieer RLS in het semantische model indien nodig. Meerdere bronnen in samengestelde modellen kunnen gegevens verplaatsen tussen bronnen; gevoelige gegevensverplaatsing beoordelen: zie gevolgen voor beveiliging.
Beperkingen voor gegevenstransformatie
Power Query Folding is vereist voor schaalbare prestaties. Transformaties moeten worden omgezet in één systeemeigen query. Complexe stappen (niet-vervouwen bewerkingen, bepaalde aangepaste functies, procedurelogica met meerdere stappen) kunnen fouten veroorzaken waarvoor vereenvoudiging is vereist of die moeten worden overgeschakeld naar Import. OLAP-bronnen zoals SAP BW weigeren transformaties in query's omdat het hele externe model beschikbaar wordt gesteld. Opgeslagen procedure-aanroepen en algemene tabelexpressies (CTE's) worden niet ondersteund op een manier die vouwen in DirectQuery toestaat.
Modelleringsbeperkingen
De meeste verrijking werkt, maar sommige mogelijkheden zijn beperkt:
- Geen automatische datumhiërarchie (expliciete datumtabel maken).
- Tijdsprecisie beperkt tot seconden (milliseconden bij bron verwijderen).
- Berekende kolommen beperkt tot expressies op rijniveau die kunnen worden gevouwen; niet-ondersteunde functies worden weggelaten uit de automatische aanvulling.
- Geen ouder-kind PATH-functies.
- Clustering wordt niet ondersteund.
Rapportagebeperkingen
De meeste visuals werken als de bron reageert. Bekijk deze beperkingen en prestatieoverwegingen:
- Lange tekstkolommen die langer zijn dan 32.764 tekens, worden niet ondersteund.
- Metingsfilters, TopN-filters,
Mediangeavanceerde tekst bevat/begint filters, slicers met meerdere selecties en totalen/subtotalen (met name metDistinctCount) kunnen extra query's toevoegen of prestaties verminderen. - Overweeg het ontwerp te vereenvoudigen of bepaalde interacties uit te schakelen.
Voorbeeld (maateenheidfilter):
Aanbevelingen voor DirectQuery
Deze sectie bevat praktische aanbevelingen voor het ontwerpen, optimaliseren en oplossen van problemen met DirectQuery-modellen in Power BI. Volg deze richtlijnen om de prestaties, betrouwbaarheid en gebruikerservaring te verbeteren bij het werken met DirectQuery-verbindingen.
Prestaties van onderliggende gegevensbronnen
Valideer interactieve query's op de basislijn. Als ze traag zijn, inspecteert u query's met Behulp van Performance Analyzer en optimaliseert u het bronschema (indexen, statistieken en columnstore indien van toepassing). Geef de voorkeur aan gehele getallen voor joins.
Modelontwerp
- Houd Power Query-stappen eenvoudig en vouwbaar. Bekijk vaak de native query.
- Begin met eenvoudige metingen en herhaal deze.
- Vermijd joins op kolommen met berekende expressies, materialiseer de bron indien nodig.
-
Vermijd joins op
uniqueidentifierwaarbij casts het gebruik van indexen verstoren; gebruik alternatieve sleuteltypen. - Surrogaat-/systeemsleutels verbergen; maak indien nodig zichtbare aliaskolommen.
- Bekijk berekende tabellen/kolommen die niet-vouwbare expressies kunnen produceren.
- Beperk bidirectionele filters alleen tot vereiste gevallen. Test de impact op de prestaties.
-
Overweeg de referentiële integriteit te waarborgen om het gebruik mogelijk te maken
INNER JOIN. - Vermijd relatieve datumfilters in Power Query. Implementeer in plaats daarvan relatieve logica in de model- of rapportlaag.
Filtervoorbeeld:
De resulterende systeemeigen query maakt gebruik van een vaste letterlijke datum:
Rapportontwerp
Houd bij het ontwerpen van rapporten met DirectQuery rekening met de volgende aanbevolen procedures om de bruikbaarheid en prestaties te optimaliseren:
Gebruik opties voor het verminderen van query's (gebruik de knop Toepassen voor slicers en filters en schakel kruislings markeren uit waarbij latentie de ervaring pijn doet).
Pas sleutelfilters vroeg toe om het aantal tussenliggende rijen te verminderen en limieten te voorkomen.
Beperk visuals op een pagina om parallelle en seriële query's te minimaliseren.
Schakel onnodige interacties (kruislings filteren of markeren) uit als ze dure bronquery's activeren.
Maximum aantal verbindingen
DirectQuery-gelijktijdigheid per bestand aanpassen (standaard 10) in Bestandsopties > en -instellingen > Opties > DirectQuery voor het huidige bestand.
Hogere waarden kunnen de doorvoer voor veel visuals verbeteren, maar ze kunnen ook de bronbelasting verhogen. Gepubliceerd gedrag is ook afhankelijk van service- of capaciteitslimieten.
| Omgeving | Bovengrens per gegevensbron |
|---|---|
| Power BI Pro | 10 actieve verbindingen |
| Power BI Premium | Afhankelijk van de beperking van de stock-keeping unit (SKU) in het semantische model |
| Power BI Report Server | 10 actieve verbindingen |
Notitie
De maximale instelling voor DirectQuery-verbindingen is van toepassing op alle DirectQuery-bronnen wanneer verbeterde metagegevens zijn ingeschakeld (standaard voor nieuwe modellen).
Functies voor prestatiedemping
Gebruik deze functies om directQuery-prestaties te verbeteren:
- Automatische aggregaties en handmatige aggregatietabellen: Samengevatte gegevens in de cache opslaan om bronquery's te verminderen.
- Hybride tabellen: Recente gegevens onderhouden via DirectQuery, historisch via Importeren.
- Ontwerp voor aggregatiebewuste metingen: Zorg ervoor dat DAX waar mogelijk evalueert op de aggregatielaag.
- Dynamische M-parameters: Doorvoer gebruikersselecties vroegtijdig naar bronpredicaten.
- Cache van query's en resultaten (capaciteitsinstellingen): Recente resultatensets opnieuw gebruiken voor herhaalde visuals.
- Dubbele opslagmodus voor gedeelde dimensietabellen: Verminder herhaalde externe dimensiescans.
DirectQuery in de Power BI-service
Alle DirectQuery-gegevensbronnen worden ondersteund via Power BI Desktop. Alleen een beperkte subset begint rechtstreeks vanuit de gebruikersinterface van de service. Begin in Power BI Desktop voor uitgebreidere modellerings- en transformatiebeheer. Zie Power BI-gegevensbronnen voor de huidige lijst met bronnen die rechtstreeks in de service beschikbaar zijn.
Prestaties in de service zijn afhankelijk van:
- Aantal gelijktijdige gebruikers
- Complexiteit en telling van visuele elementen per pagina
- Aanwezigheid van beveiliging op rijniveau (kan het hergebruik van cache verminderen)
- Planningen voor tegelvernieuwing
Gedrag van rapporten in de Power BI-service
Wanneer u een rapportpagina opent, worden query's uitgevoerd voor elke visual (soms meerdere visuals). Interacties (slicerwijzigingen, kruislings markeren, filters) voeren de query's opnieuw uit. De service slaat enkele resultaten in de cache op. Exacte herhalingsquery's kunnen direct worden geretourneerd, tenzij de beveiligingsgrenzen verschillen.
Nuances van mogelijkheden
- Snelle inzichten: Niet ondersteund voor semantische DirectQuery-modellen.
- Verkennen in Excel/Analyseren in Excel: Ondersteund, maar kan langzamer aanvoelen. Overweeg de importmodus of aggregaties voor intensief Excel-gebruik.
- Hiërarchieën in Excel: Sommige semantische DirectQuery-modelhiërarchieën worden niet hetzelfde weergegeven in Excel.
Dashboard vernieuwen
DirectQuery-tegels worden volgens een schema vernieuwd. De standaardwaarde is elk uur en u kunt deze instellen van elke 15 minuten tot wekelijks. Met beveiliging op rijniveau voert elke gebruiker afzonderlijke tegelqueries uit. Een hoog aantal tegels vermenigvuldigd met het aantal gebruikers en de vernieuwingsfrequentie kan zware belasting creëren: plan capaciteit en overweeg aggregaties.
Time-outs voor query’s
De service dwingt een time-out van 4 minuten af per query. Visuals die de limiet overschrijden, mislukken door een time-outfout. Zorg ervoor dat onderliggende bronnen interactieve prestaties bieden voordat u DirectQuery kiest.
Diagnostische gegevens over prestaties
Prestaties eerst diagnosticeren in Power BI Desktop.
Gebruik Performance Analyzer om trage visuals te isoleren. Richt u op één problematisch visueel element tegelijk.
SQL Server Profiler gebruiken om query's te bekijken
Power BI Desktop schrijft sessietraceringen, waaronder DirectQuery SQL voor sommige bronnen, naar het FlightRecorderCurrent.trc-bestand in de map AnalysisServicesWorkspaces van de gebruiker.
Om het spoor te vinden:
Selecteer in Power BI Desktop Bestand > Opties en instellingen > Opties > Diagnostiek.
Selecteer Open crashdump-/traceerbestandsmap.
Ga één niveau omhoog naar AnalysisServicesWorkspaces, open de map actieve werkruimte, vervolgens Data en zoek FlightRecorderCurrent.trc.
Open in SQL Server Profiler het bestand: File > Open > Trace File.
Profiler geeft gegroepeerde gebeurtenissen weer:
Gebeurteniskolommen:
- TextData: DAX (voor Query Begin/End) of systeemeigen SQL (voor DirectQuery Begin/End).
- Duur (ms) en EndTime helpen trage fasen vast te stellen.
- ActivityID groepeert gerelateerde gebeurtenissen.
Richtlijnen voor vastleggen:
- Houd sessies kort (≈10 seconden aan gerichte acties).
- Open het traceringsbestand opnieuw om zojuist leeggemaakte gebeurtenissen weer te geven.
- Vermijd meerdere gelijktijdige desktopexemplaren om verwarring te verminderen.
Inzicht in de indeling van query's
Power BI maakt vaak gebruik van een subselectie (afgeleide tabel) voor elke logische tabel waarnaar wordt verwezen door Power Query-stappen.
Voorbeeldquerylogica:
SalesAmount (SUMX(Web_Sales, [ws_sales_price]*[ws_quantity]))
by Item[i_category]
for Date_dim[d_year] = 2000
Resulterende visual:
Gegenereerde SQL met subselecties:
Subselect query patronen beïnvloeden de prestaties van ondersteunde engines meestal niet nadelig, omdat optimalisatoren ongebruikte kolommen elimineren. Prioriteit geven aan vouwbaarheid.
Notitie
Dit artikel bevat algemene richtlijnen voor DirectQuery in Power BI. Valideer altijd de prestaties en het gedrag van DirectQuery met uw specifieke gegevensbron, schema, indexen, workload en gelijktijdigheidsvereisten voordat u in productie implementeert.