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 les tables Delta directement à partir de OneLake, sauf s’ils doivent revenir en mode DirectQuery. Les raisons classiques du basculement sont notamment les sollicitations de la mémoire qui peuvent empêcher le chargement des colonnes nécessaires pour traiter une requête DAX, et certaines fonctionnalités de la source de données peuvent ne pas prendre en charge le mode Direct Lake, par exemple les vues SQL dans un entrepôt de données et un lac de données. En général, le mode Direct Lake offre les meilleures performances de requête DAX, sauf si un retour en mode DirectQuery est nécessaire. Étant donné que le basculement en mode 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 les basculements se produisent et à quelle fréquence.

Analyser à l’aide de l’analyseur de performances

L’analyseur de performances peut fournir un aperçu rapide et simple de la façon dont un visuel interroge une source de données et du temps nécessaire au rendu d’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. Sur 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 une carte visuelle sur le canevas de rapport, sélectionnez une colonne de données pour créer un rapport de base, puis, dans le menu Affichage, sélectionnez Analyseur de performances.

    Capture d’écran du volet Analyseur de performances.

  5. Dans le volet 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 le visuel Carte. Le visuel 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 repasse en mode DirectQuery pour traiter la requête DAX du visuel, une métrique de performances Requête directe s’affiche, comme illustré dans l’image suivante :

    Capture d’écran de l’indicateur de performances des requêtes directes.

Analyser à l’aide de SQL Server Profiler

SQL Server Profiler peut fournir plus de détails sur le niveau de performance des requêtes en effectuant le traçage des événements de requête. Il est installé avec SQL Server Management Studio (SSMS). Avant de commencer, assurez-vous 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 Connexion au serveur>Type de serveur, sélectionnez Analysis Services, puis, dans Nom du serveur, entrez l’URL de votre espace de travail. Sélectionnez ensuite 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 Connecter au serveur dans le Générateur de profils SQL.

  4. Cliquez sur Options. Dans Connexion à la base de données, saisissez le nom de votre modèle sémantique, puis sélectionnez Se connecter. Connectez-vous à Microsoft Entra ID.

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

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

    Capture d’écran de la case Afficher tous les événements cochée dans Sélection des é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 des événements DirectQuery Begin/End apparaissent dans la trace, il est possible que le modèle sémantique soit repassé en mode DirectQuery. Notez toutefois que la présence de requêtes EngineEdition et éventuellement de requêtes pour vérifier la sécurité au niveau objet (OLS) ne constitue pas une solution alternative, car le moteur utilise toujours le mode DirectQuery pour ces vérifications non liées au 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 les mêmes que pour le mode d’importation.

    Il doit se présenter comme suit :

    Capture d’écran montrant des événements de traitement de requête sélectionnés dans le Générateur de profils SQL.

  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 de requête.

    L’image suivante montre un exemple d’événements de traitement de requête 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 d’événements de traitement de requête dans le Générateur de profils SQL.