Partager via


Profil de requête

Vous pouvez utiliser un profil de requête pour visualiser les détails de l’exécution d’une requête. Le profil de requête vous aide à résoudre les goulets d'étranglement en matière de performances pendant l'exécution de la requête. Par exemple :

  • Vous pouvez visualiser chaque tâche de requête et ses mesures associées, notamment le temps passé, le nombre de lignes traitées, les lignes traitées et la mémoire consommée.
  • Vous pouvez identifier en un coup d’œil la partie la plus lente de l’exécution d’une requête et évaluer l’impact des modifications apportées à la requête.
  • Vous pouvez identifier et corriger les erreurs courantes dans les instructions SQL, par exemple des éclatements de jointures ou des analyses de tables complètes.

Important

Le temps enregistré pour une requête SQL dans l’Historique des requêtes est uniquement le temps que l’entrepôt SQL passe réellement à exécuter la requête. Il n’enregistre pas de surcharge supplémentaire associée à la préparation de l’exécution de la requête, comme la mise en file d’attente interne ou le temps supplémentaire lié au processus de chargement et de téléchargement des données.

Spécifications

Pour visualiser un profil de requête, vous devez être le propriétaire de la requête ou avoir l’autorisation PEUT GÉRER sur l’entrepôt SQL qui a exécuté la requête.

Afficher un profil de requête

Après avoir exécuté une requête dans l’éditeur SQL ou dans un notebook, vous pouvez ouvrir le profil de requête en cliquant sur le temps écoulé en bas de la sortie.

Ouvrir l’historique des requêtes à partir d’une sortie de notebook ou d’éditeur

Vous pouvez également afficher le profil de requête à partir de l’historique des requêtes comme suit :

  1. Voir l'historique des requêtes.

  2. Cliquez sur le nom d’une requête. Une vue d’ensemble des mesures de requête s’affiche.

    Vue simple du résumé de l’exécution des requêtes

  3. Cliquez sur Afficher le profil de requête.

    Remarque

    Si Le profil de requête n’est pas disponible est affiché, c’est qu’aucun profil n’est disponible pour cette requête. Aucun profil de requête n'est disponible pour les requêtes exécutées à partir du cache des requêtes. Pour contourner le cache des requêtes, apportez une modification triviale à la requête, par exemple en modifiant ou en supprimant l’élément LIMIT.

  4. Pour afficher le profil de requête en mode graphique (valeur par défaut), cliquez sur Vue graphique. Pour afficher le profil de requête en tant qu’arborescence, cliquez sur Arborescence.

    • La vue Graphe est optimisée pour visualiser la façon dont les données circulent d’un nœud à l’autre.
    • L’arborescence est optimisée pour trouver rapidement les problèmes liés aux performances de la requête, comme identifier l’opérateur qui met demande le temps d’exécution le plus long.
  5. Dans la vue Graphique ou Arborescence, vous pouvez cliquer sur un des onglets en haut de la page pour voir les détails de chacune des tâches de la requête.

    • Durée : somme du temps d’exécution passé par toutes les tâches pour chaque opération.
    • Lignes : nombre et taille des lignes affectées par chacune des tâches de la requête.
    • Mémoire maximale : mémoire maximale consommée par chacune des tâches de la requête.

    Remarque

    Certaines opérations non Photon sont exécutées en tant que groupe et partagent des métriques communes. Dans ce cas, toutes les tâches subordonnées ont la même valeur que la tâche parente pour une métrique donnée.

  6. En mode graphique, si une tâche comporte des sous-tâches, cliquez sur un nœud pour en afficher les détails. Dans l’arborescence, vous pouvez cliquer sur > pour le développer.

  7. Le fonctionnement de chaque tâche est indiqué. Par défaut, les tâches et les métriques de certaines opérations sont masquées. Il est peu probable que ces opérations soient à l’origine des goulets d’étranglement de performances. Pour obtenir des informations sur toutes les opérations et voir d’autres métriques, cliquez sur menu Kebab en haut de la page, puis cliquez sur Activer le mode détaillé. Les opérations les plus courantes sont les suivantes :

    • Scan (Analyse) : les données ont été lues depuis une source de données et affichées sous forme de lignes.
    • Join (Jointure) : les lignes de plusieurs relations ont été combinées (entrelacées) en un seul ensemble de lignes.
    • Union : les lignes de plusieurs relations qui utilisent le même schéma ont été concaténées en un seul ensemble de lignes.
    • Shuffle (Mélange) : les données ont été redistribuées ou repartitionnées. Les opérations Shuffle sont coûteuses en ressources car elles déplacent les données entre les exécuteurs sur le cluster.
    • Hash / Sort (Hashage/tri) : les lignes sont regroupées par une clé et évaluées à l'aide d'une fonction d'agrégation comme SUM, COUNT ou MAX dans chaque groupe.
    • Filter (Filtre) : l'entrée est filtrée selon un critère, par exemple une clause WHERE, et un sous-ensemble de lignes est renvoyé.
    • (Reused) Exchange (Échange (réutilisé)) : un échange de type Shuffle (aléatoire) ou Broadcast (diffusion) est utilisé pour redistribuer les données entre les nœuds de cluster en fonction du partitionnement souhaité.
    • Collect Limit (Limite de collecte) : le nombre de lignes retournées a été tronqué à l’aide d'une instruction LIMIT.
    • Take Ordered And Project (Classement et projet) : les N premières lignes du résultat de la requête ont été retournées.
  8. Pour afficher le profil de requête dans l’interface utilisateur Apache Spark, cliquez sur menu Kebab en haut de la page, puis cliquez sur Ouvrir dans l’interface utilisateur Spark.

  9. Pour fermer le profil de requête importé, cliquez sur X en haut de la page.

Pour plus de détails sur les informations disponibles dans le profil de requête, voir Afficher les détails du profil de la requête.

Afficher les informations sur le profil de la requête

Le profil de la requête répertorie les tâches de premier niveau de la requête dans l'ordre inverse, la dernière tâche apparaissant en premier. Sur la gauche, trois colonnes affichent la séquence de tâches, le nom de l’opération et un graphique de la métrique sélectionnée pour cette tâche. Procédez comme suit pour vous familiariser avec les différentes parties du profil de requête.

  1. Cliquez sur Durée pour voir la durée de chaque sous-tâche.
  2. Cliquez sur Lignes pour voir le nombre et la taille des lignes retournées par la requête.
  3. Cliquez sur Mémoire pour voir la mémoire consommée par chaque tâche de la requête. Si la tâche comporte des sous-tâches, vous pouvez cliquer sur > pour voir les détails de chaque sous-tâche.
  4. À droite, cliquez sur Vue d’ensemble pour voir l’instruction SQL de la requête, son statut, les heures de début et de fin, la durée, l’utilisateur qui a exécuté la requête et l’entrepôt où la requête a été exécutée.
  5. Cliquez sur une tâche pour en afficher les détails, notamment la description de la tâche et les métriques concernant la durée de la tâche, la mémoire consommée, le nombre et la taille des lignes renvoyées et la traçabilité.
  6. Pour fermer les détails de la sous-tâche, cliquez sur X.
  7. Cliquez sur le nom de l’entrepôt SQL pour accéder aux propriétés de cet entrepôt.
  8. Pour afficher le profil de requête dans l’interface utilisateur Apache Spark, cliquez sur menu Kebab en haut de la page, puis cliquez sur Ouvrir dans l’interface utilisateur Spark.
  9. Pour fermer le profil de requête, cliquez sur X en haut de la page.

Partager un profil de requête

Pour partager un profil de requête avec un autre utilisateur :

  1. Voir l'historique des requêtes.
  2. Cliquez sur le nom de la requête.
  3. Pour partager la requête, vous avez deux possibilités :
    • Si l’autre utilisateur dispose du droit PEUT GÉRER sur la requête, vous pouvez partager avec lui l’URL pour le profil de la requête avec lui. Cliquez sur Partager. L’URL est copiée dans le Presse-papiers.
    • Sinon, si l’autre utilisateur n’a pas l’autorisation PEUT GÉRER ou n’est pas membre de l’espace de travail, vous pouvez télécharger le profil de la requête en tant qu’objet JSON. Télécharger. Le fichier JSON est téléchargé sur votre système local.

Importer un profil de requête

Pour importer le fichier JSON pour un profil de requête :

  1. Voir l'historique des requêtes.

  2. Cliquez sur le menu kebab menu Kebab en haut à droite, puis sélectionnez Importer un profil de requête (JSON).

  3. Dans le navigateur de fichiers, sélectionnez le fichier JSON qui a été partagé avec vous, puis cliquez sur Open (Ouvrir). Le fichier JSON est chargé et le profil de requête est affiché.

    Lorsque vous importez un profil de requête, il est chargé dynamiquement dans votre session de navigateur et n’est pas conservé dans votre espace de travail. Vous devez l’importer à nouveau chaque fois que vous souhaitez l’afficher.

  4. Pour fermer le profil de requête importé, cliquez sur X en haut de la page.

Étapes suivantes