Analyser le traitement des requêtes pour les modèles sémantiques Direct Lake

Les modèles sémantiques Power BI en mode Direct Lake lisent directement les tables Delta à partir de OneLake, sauf s’ils doivent revenir à mode DirectQuery. Les raisons courantes de secours incluent des contraintes de mémoire qui peuvent empêcher le chargement de colonnes requises pour traiter une requête DAX, et certaines fonctionnalités à la source de données ne supportent peut-être pas le mode Direct Lake, comme les vues SQL dans un entrepôt de données et Lakehouse. En règle générale, le mode Direct Lake offre les meilleures performances de requête DAX, sauf si un secours au mode DirectQuery est nécessaire. Étant donné que le mode de secours DirectQuery peut avoir un impact sur les performances des requêtes DAX, il est important d’analyser le traitement des requêtes pour un modèle sémantique Direct Lake afin d’identifier si et à quelle fréquence les secours se produisent.

Analyser à l’aide de l’analyseur de performances

L’analyseur de performances peut fournir un aperçu rapide et facile de la façon dont un visuel interroge une source de données et combien de temps il faut pour afficher un résultat.

  1. Démarrez Power BI Desktop. Dans l’écran de démarrage, sélectionnez Nouveau>rapport.

  2. Sélectionnez Obtenir des données dans le ruban, puis sélectionnez modèles sémantiques Power BI.

  3. Dans la page hub de données OneLake, sélectionnez le modèle sémantique Direct Lake auquel vous souhaitez vous connecter, puis sélectionnez Se connecter.

  4. Placez un visuel de carte sur le canevas du rapport, sélectionnez une colonne de données pour créer un rapport de base, puis, dans le menu Afficher, sélectionnez Analyseur de performances.

    capture d’écran du volet Analyseur de performances.

  5. Dans le volet de l’analyseur de performances, sélectionnez Démarrer l’enregistrement.

    Capture d’écran de la commande pour démarrer l’enregistrement dans l’analyseur de performances.

  6. Dans le volet Analyseur de performances, sélectionnez Actualiser les visuels, puis développez la visualisation Carte. Le visuel de carte n’entraîne aucun traitement DirectQuery, ce qui indique que le modèle sémantique a pu traiter les requêtes DAX du visuel en mode Direct Lake.

    Si le modèle sémantique revient au mode DirectQuery pour traiter la requête DAX du visuel, vous voyez une métrique de performances requête directe, comme illustré dans l’image suivante :

    Capture d’écran de la métrique de performances des requêtes directes.

Analyser à l’aide de SQL Server Profiler

SQL Server Profiler peut fournir plus de détails sur les performances des requêtes en traçant les événements de requête. Il est installé avec SQL Server Management Studio (SSMS). Avant de commencer, vérifiez que la dernière version de SSMS est installée.

  1. Démarrez SQL Server Profiler à partir du menu Windows.

  2. Dans SQL Server Profiler, sélectionnez Fichier>Nouvelle trace.

  3. Dans Se connecter au serveur>type de serveur, sélectionnez Analysis Services, puis, dans nom du serveur, entrez l’URL de votre espace de travail, sélectionnez une méthode d’authentification, puis entrez un nom d’utilisateur pour vous connecter à l’espace de travail.

    capture d’écran de la boîte de dialogue Se connecter au serveur dans SQL Server Profiler.

  4. Sélectionnez Options. Dans Se connecter à la base de données, entrez le nom de votre modèle sémantique, puis sélectionnez Se connecter. Connectez-vous à l’ID Microsoft Entra.

    Capture d’écran du nom de la base de données spécifié dans le champ Se connecter à la base de données.

  5. Dans Propriétés de trace>Sélection des événements, cochez la case Afficher tous les événements.

    Capture d’écran de la sélection des événements - Case à cocher Afficher tous les événements.

  6. Faites défiler jusqu’à Traitement des requêtes, puis cochez les cases pour les événements suivants :

    Événement Description
    DirectQuery_Begin
    DirectQuery_End
    Si les événements DirectQuery Begin/End apparaissent dans la trace, il est possible que le modèle sémantique ait basculé en mode DirectQuery. Toutefois, notez que la présence de requêtes EngineEdition et éventuellement de requêtes pour vérifier la Sécurité Object-Level (OLS) ne représente pas un retour en arrière, car le moteur utilise toujours le mode DirectQuery pour ces vérifications sans rapport avec le traitement des requêtes.
    VertiPaq_SE_Query_Begin
    VertiPaq_SE_Query_Cache_Match
    VertiPaq_SE_Query_Cache_Miss
    VertiPaq_SE_Query_End
    Les événements du moteur de stockage VertiPaq (SE) en mode Direct Lake sont identiques au mode d’importation.

    Il doit ressembler à ceci :

    Capture d’écran montrant les événements de traitement des requêtes sélectionnés dans SQL Server Profiler.

  7. Sélectionnez Exécuter. Dans Power BI Desktop, créez un rapport ou interagissez avec un rapport existant pour générer des événements de requête. Passez en revue le rapport de trace SQL Server Profiler pour les événements de traitement des requêtes.

    L’image suivante montre un exemple d’événements de traitement des requêtes pour une requête DAX. Dans cette trace, les événements du moteur de stockage VertiPaq (SE) indiquent que la requête a été traitée en mode Direct Lake. Capture d’écran des événements de traitement des requêtes dans SQL Server Profiler.