Comprendre les métriques de performances des requêtes

L'exploration Métriques de performances des requêtes dans l'activité du système fournit des informations détaillées sur chaque requête exécutée à partir de votre instance Looker.

Par exemple, vous pouvez utiliser cette exploration pour déterminer les composants d'une requête qui ont mis le plus de temps à se charger. Vous pouvez également l'utiliser pour identifier les tendances et les anomalies en matière de performances des requêtes.

Pour en savoir plus sur les explorations disponibles dans l'activité du système, consultez la page de documentation Surveiller l'utilisation de Looker avec les explorations de l'activité du système.

Afficher les métriques de performances des requêtes

Les métriques de performances des requêtes sont visibles dans l'exploration Métriques de performances des requêtes de l'activité du système. Vous devez être un administrateur Looker ou disposer de l'autorisation see_system_activity pour afficher l'exploration Métriques de performances des requêtes.

Comprendre le cycle de vie des requêtes Looker

Chaque requête que Looker envoie à votre base de données passe par plusieurs phases, chacune comportant plusieurs étapes. Chacune de ces étapes est représentée par une dimension dans l'exploration Métriques de performances des requêtes.

De manière générale, les phases peuvent être conceptualisées comme suit :

  1. Phase de nœud de calcul asynchrone : tout d'abord, la tâche de requête doit être attribuée à un nœud de calcul asynchrone disponible. Il peut y avoir un temps d'attente dans la file d'attente si aucun nœud de calcul n'est disponible.
  2. Phase d'initialisation : une fois qu'un nœud de calcul asynchrone est attribué, l'instance Looker exécute plusieurs étapes d'initialisation pour préparer la requête.
  3. Phase de gestion des connexions : une fois l'initialisation terminée, l'instance Looker établit une connexion à la base de données client.
  4. Phase de requête principale : une fois que l'instance Looker établit une connexion à la base de données client, la requête principale est exécutée sur la base de données client. Des requêtes supplémentaires pour calculer les résultats, tels que les totaux, peuvent également être exécutées en fonction des options choisies pour la requête. Si la requête n'est pas diffusée en streaming, elle est chargée en mémoire sur l'instance Looker. Ensuite, la connexion entre l'instance Looker et la base de données client est fermée.
  5. Phase post-requête : enfin, l'instance Looker exécute plusieurs étapes post-requête pour préparer la requête pour sa destination suivante. À ce stade, le nœud de calcul asynchrone est libéré.

Métriques de performances des requêtes

Les sections suivantes listent chaque phase et chaque étape de la requête par ordre chronologique. Chaque métrique d'étape de requête est mesurée en temps écoulé en secondes.

Métriques de la phase de nœud de calcul asynchrone

Étape de la requête Description de la métrique
Queued Temps en secondes pendant lequel une requête attend qu'un nœud de calcul asynchrone soit disponible pour l'exécuter.
Async processing Temps en secondes qu'un nœud de calcul asynchrone consacre à la requête. Le nœud de calcul continue de travailler sur la requête jusqu'à la fin de la phase post-requête. Cette métrique chevauchera donc la plupart des autres métriques de cette page.

Métriques de la phase d'initialisation

Étape de la requête Description de la métrique
Model Init: From Cache Temps en secondes nécessaire pour extraire la définition du modèle du cache. Si cette valeur renvoie une valeur nulle, cela signifie que le modèle a été chargé et analysé au lieu d'être extrait du cache. (Voir l'étape Model Init: Computed.)
Model Init: Computed Temps en secondes nécessaire pour charger et analyser le modèle requis pour exécuter une requête. Si cette valeur renvoie une valeur nulle, cela signifie que le modèle a été récupéré à partir du cache au lieu d'être chargé et analysé à partir de zéro. (Voir l'étape Model Init: From Cache.)
Explore Init: From Cache Temps en secondes nécessaire pour extraire l'initialisation de l'exploration du cache. Si cette valeur renvoie une valeur nulle, cela signifie que l'exploration a été chargée et analysée au lieu d'être extraite du cache. (Voir l'étape Explore Init: Computed.)
Explore Init: Computed Temps en secondes nécessaire pour initialiser l'exploration avant de commencer à la prepare. Si cette valeur renvoie une valeur nulle, cela signifie que l'exploration a été récupérée à partir du cache au lieu d'être chargée et analysée à partir de zéro. (Voir l'étape Explore Init: From Cache.)
Prepare Temps en secondes nécessaire pour préparer la requête à partir de la définition de l'exploration.

Métriques de la phase de gestion des connexions

Étape de la requête Description de la métrique
Per User Throttler Temps en secondes pendant lequel la requête attend qu'une connexion soit disponible pour que l'utilisateur puisse l'exécuter.
Acquire Connection Temps en secondes nécessaire à l'instance Looker pour acquérir une connexion à la base de données client. Cette étape inclut le temps nécessaire pour rechercher les identifiants de l'utilisateur et créer le pool de connexions s'il n'existe pas déjà.
Connection Init Temps en secondes nécessaire pour initialiser une connexion à utiliser.
Adapter Throttler Temps en secondes pendant lequel la requête passe dans la file d'attente de l'adaptateur.
Connection Held Temps en secondes pendant lequel l'instance Looker maintient une connexion à la base de données client. Cette étape inclut le temps nécessaire à la base de données client pour exécuter la requête SQL.

Métriques de la phase des requêtes principales

Étape de la requête Description de la métrique
Cache Load Temps en secondes nécessaire pour extraire les résultats bruts du cache de l'ensemble de résultats.
PDTs Temps en secondes nécessaire pour créer les tables dérivées persistantes requises pour la requête.
Query Execution Temps total en secondes nécessaire pour exécuter toutes les requêtes sur la connexion, y compris le temps passé dans les limiteurs.
Execute Main Query Temps en secondes nécessaire pour exécuter la requête primary sur la base de données client. Cela n'inclut pas le temps d'initialisation de la connexion ni le temps du limiteur. Ce délai commence après l'initialisation de la connexion et une fois que tous les limiteurs ont terminé.
Execute Totals Query Temps en secondes nécessaire pour exécuter la requête afin de générer des totaux dans la base de données client. Ne s'applique qu'aux requêtes pour lesquelles les totaux sont activés.
Execute Row Totals Query Temps en secondes nécessaire pour exécuter la requête afin de générer des totaux de lignes dans la base de données client. Ne s'applique qu'aux requêtes pour lesquelles les totaux de lignes sont activés.
Execute Grand Totals Query Temps en secondes nécessaire pour exécuter la requête afin de générer le total général dans la base de données client. Ne s'applique qu'aux requêtes pour lesquelles les totaux et les totaux de lignes sont activés.
Load Process and Stream Main Query Temps en secondes nécessaire pour charger la requête principale (à partir de la base de données client), la traiter (sur l'instance Looker) et la diffuser en streaming (au client). Ne s'applique qu'aux requêtes diffusées en streaming.
Load Main Query In Memory Temps en secondes nécessaire pour charger les résultats de la requête principale en mémoire à partir de la base de données client. Ne s'applique qu'aux requêtes non diffusées en streaming.
Load Totals Query In Memory Temps en secondes nécessaire pour charger la requête afin de générer des totaux en mémoire. Ne s'applique qu'aux requêtes non diffusées en streaming pour lesquelles les totaux sont activés.
Load Row Totals Query In Memory Temps en secondes nécessaire pour charger la requête afin de générer des totaux de lignes en mémoire. Ne s'applique qu'aux requêtes non diffusées en streaming pour lesquelles les totaux de lignes sont activés.
Load Grand Totals Query In Memory Temps en secondes nécessaire pour charger la requête afin de générer le total général en mémoire. Ne s'applique qu'aux requêtes non diffusées en streaming pour lesquelles les totaux et les totaux de lignes sont activés.

Métriques de la phase post-requête

Étape de la requête Description de la métrique
Postprocessing Temps en secondes nécessaire pour le post-traitement de la requête. Se produit après la fermeture de la connexion.
Stream to Cache Temps en secondes nécessaire pour traiter et diffuser les résultats en streaming dans le cache de rendu.
Render Temps en secondes nécessaire pour afficher les résultats d'une requête.
Streaming to Client Temps en secondes nécessaire pour diffuser les résultats de la requête en streaming au client.

Métriques BigQuery BI Engine

Si vous utilisez BigQuery BI Engine avec Looker, vous pouvez utiliser l'exploration Métriques de performances des requêtes pour afficher des informations spécifiques à la base de données concernant vos requêtes. Les requêtes qui n'utilisent pas BI Engine et les requêtes de bases de données autres que les bases de données BigQuery renvoient des valeurs nulles pour ces métriques.

Métrique Description de la métrique
BigQuery Job ID

ID de tâche BigQuery pour la requête (ou NULL).

Pour accélérer le temps de réponse des requêtes dans BigQuery, Looker exécute les requêtes BigQuery à l'aide de jobCreationMode=JOB_CREATION_OPTIONAL. Dans ce mode, lorsque BigQuery détermine qu'il peut terminer une requête rapidement, il donne la priorité au renvoi de résultats immédiats au lieu de créer une tâche BigQuery. Dans ce cas, la requête aura un ID de requête BigQuery (et l'ID de tâche BigQuery sera NULL).

Si BigQuery détermine qu'il ne peut pas renvoyer de résultats immédiats, il crée une tâche et la requête aura un ID de tâche BigQuery (et l'ID de requête BigQuery sera NULL).

BigQuery Query ID

ID de requête BigQuery pour la requête (ou NULL).

Pour accélérer le temps de réponse des requêtes dans BigQuery, Looker exécute les requêtes BigQuery à l'aide de jobCreationMode=JOB_CREATION_OPTIONAL. Dans ce mode, lorsque BigQuery détermine qu'il peut terminer une requête rapidement, il donne la priorité au renvoi de résultats immédiats au lieu de créer une tâche BigQuery. Dans ce cas, la requête aura un ID de requête BigQuery au lieu d'un ID de tâche BigQuery.

Si BigQuery détermine qu'il ne peut pas renvoyer de résultats immédiats, il crée une tâche et la requête aura un ID de tâche BigQuery (et l'ID de requête BigQuery sera NULL). Si ce champ est vide, BigQuery n'a pas pu exécuter la requête immédiatement et a créé une tâche pour l'exécuter. Consultez plutôt BigQuery Job ID pour obtenir un ID pour la tâche BigQuery.

BI Engine Mode Indique si la requête a pu être exécutée partiellement ou entièrement de manière accélérée. Pour en savoir plus sur les valeurs possibles de ce champ, consultez les statistiques d'accélération de BI Engine.
BI Engine Reason Si la requête n'a pas pu être exécutée de manière entièrement accélérée, ce champ affiche la raison. Ce message provient directement de Google BigQuery.

Résoudre les problèmes à l'aide des métriques de performances des requêtes

L'analyse des métriques de requêtes peut vous aider à améliorer les performances de votre instance Looker. Pour commencer, sélectionnez le tableau de bord Recommandations sur les performances dans la liste des tableaux de bord de l'activité du système.