Les insights de requête dans l’entrepôt de données Fabric

S’applique à : point de terminaison d’analytique SQL et entrepôt dans Microsoft Fabric

Dans Microsoft Fabric, la fonctionnalité Insights de requête est une solution évolutive, durable et extensible permettant d’améliorer l’expérience d’analytique SQL. Grâce aux données de requête historiques, aux insights agrégés et à l’accès au texte de requête réel, vous pouvez analyser et optimiser les performances de vos requêtes. QI fournit des informations sur les requêtes exécutées dans le contexte d’un utilisateur uniquement, les requêtes système ne sont pas prises en compte.

La fonctionnalité Insights de requête fournit un emplacement central pour les données de requête historiques et les insights exploitables pendant 30 jours, ce qui vous permet de prendre des décisions éclairées pour améliorer les performances de votre entrepôt ou de votre point de terminaison d’analytique SQL. Lorsqu’une requête SQL s’exécute dans Microsoft Fabric, la fonctionnalité Insights de requête collecte et consolide ses données d’exécution, ce qui vous fournit des informations précieuses. Vous pouvez afficher le texte de requête complet pour les rôles Administrateur, Membre et Contributeur.

  • Données de requête historiques : la fonctionnalité Insights de requête stocke les données historiques sur les exécutions de requête, ce qui vous permet de suivre les modifications de performances au fil du temps. Les requêtes système ne sont pas stockées dans les insights de requête.
  • Insights agrégés : la fonctionnalité Insights des requêtes agrège les données d’exécution des requêtes en insights plus exploitables, telles que l’identification de requêtes longues ou la plupart des utilisateurs actifs. Ces agrégations sont basées sur la forme de requête et sont expliquées plus loin dans Comment les requêtes similaires sont-elles agrégées pour générer des aperçus ?

Avant de commencer

Vous devez avoir accès à un point de terminaison d’analytique SQL ou un entrepôt dans un espace de travail de capacité Premium avec des autorisations de contributeur ou supérieures.

Quand avez-vous besoin d’insights de requête ?

La fonctionnalité Insights de requête répond à plusieurs questions et préoccupations liées aux performances des requêtes et à l’optimisation des bases de données, notamment :

Analyse des performances des requêtes

  • Quelles sont les performances historiques de nos requêtes ?
  • Existe-t-il des requêtes longues qui nécessitent une attention particulière ?
  • Pouvons-nous identifier les requêtes provoquant des goulots d’étranglement des performances ?

Optimisation et réglage des requêtes

  • Quelles requêtes sont fréquemment exécutées et peuvent-elles être améliorées ?
  • Pouvons-nous identifier les requêtes qui ont échoué ou qui ont été annulées ?
  • Pouvons-nous suivre les modifications des performances des requêtes au fil du temps ?
  • Existe-t-il des requêtes dont les performances sont constamment médiocres ?

Surveillance des activités des utilisateurs

  • Qui a envoyé une requête particulière ?
  • Qui sont les utilisateurs les plus actifs ou les utilisateurs disposant des requêtes les plus longues ?

Il existe trois vues système pour fournir des réponses à ces questions :

Où pouvez-vous voir les insights de requête ?

Les vues générées automatiquement se trouvent sous le schéma queryinsights dans point de terminaison d’analytique SQL et Entrepôt. Dans l’Explorateur Fabric d’un entrepôt, par exemple, recherchez des vues d’insights de requête sous Schémas ,queryinsights , Vues.

Capture d'écran de Fabric Explorer montrant où rechercher des vues d'aperçus de requête sous Schémas, queryinsights, Vues.

Une fois l’exécution de votre requête terminée, vous voyez ses données d’exécution dans les vues queryinsights de l’entrepôt ou du point de terminaison d’analytique SQL auquel vous étiez connecté. Si vous exécutez une requête inter-bases de données alors que vous êtes dans le contexte WH_2, votre requête apparaît dans les insights de requête de WH_2. Les requêtes terminées peuvent prendre jusqu’à 15 minutes pour apparaître dans les insights de requête en fonction de la charge de travail simultanée en cours d’exécution. Le temps nécessaire pour que les requêtes apparaissent dans les insights de requête augmente avec le nombre de requêtes simultanées en cours d’exécution.

Comment les requêtes similaires sont-elles agrégées pour générer des insights ?

Les requêtes sont considérées comme identiques par la fonctionnalité Insights de requête si, à l’exception de la valeur du prédicat, deux requêtes ont une correspondance exacte dans le texte de la requête. Les espaces blancs et les caractères de nouvelle ligne font que les requêtes sont considérées comme différentes.

Vous pouvez utiliser la colonne query hash dans les vues pour analyser des requêtes similaires et descendre dans la hiérarchie de chaque exécution.

Par exemple, les requêtes suivantes sont considérées comme identiques après paramétrage de leurs prédicats :

SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';

et

SELECT * FROM Orders
WHERE OrderDate BETWEEN '2000-07-01' AND '2006-07-31';

Exemples

Identifiez les requêtes que vous avez exécutées au cours des 30 dernières minutes

La requête suivante utilise queryinsights.exec_requests_history et la fonction intégrée USER_NAME(), qui retourne votre nom d’utilisateur de session actuel.

SELECT * FROM queryinsights.exec_requests_history 
WHERE start_time >= DATEADD(MINUTE, -30, GETUTCDATE())
AND login_name = USER_NAME();

Identifiez les requêtes les plus fréquemment exécutées à l’aide d’une sous-chaîne dans le texte de la requête

La requête suivante retourne les requêtes les plus récentes qui correspondent à une certaine chaîne, classées par le nombre d’exécutions réussies en ordre décroissant.

SELECT * FROM queryinsights.frequently_run_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY number_of_successful_runs DESC;

Identifiez les requêtes longues à l’aide d’une sous-chaîne dans le texte de la requête

La requête suivante retourne les requêtes qui correspondent à une chaîne donnée, classées par l’heure médiane d’exécution de la requête, en ordre décroissant.

SELECT * FROM queryinsights.long_running_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY median_total_elapsed_time_ms DESC;