Cette rubrique présente les informations de base de la page SQL Insights, notamment les statistiques SQL, la surveillance des performances, l'analyse des requêtes au niveau du locataire et la liste SQL.
Statistiques du cluster
Dans l'onglet Statistics, consultez le nombre de requêtes SQL suspectes et de requêtes SlowSQL dans le cluster actuel, ainsi que le nombre correspondant pour chaque locataire. Cliquez sur un nom de locataire pour afficher les détails du diagnostic du locataire dans les sections inférieures de la page SQL Insights.

Surveillance des performances du cluster
Dans l'onglet Performance Monitoring, consultez les performances SQL du cluster.

Analyse des requêtes du locataire
Cliquez sur le bouton View Request Analysis au milieu de la page pour afficher la Distribution of Elapsed Time et la Request Statistics List.
Surveillance des performances du locataire
Cliquez sur View Performance Monitoring au milieu de la page pour afficher les données de surveillance des performances d'un locataire.
Informations de diagnostic du locataire
Sélectionnez un locataire dans la liste déroulante Tenant et consultez les informations de diagnostic relatives aux requêtes TopSQL, SlowSQL, Suspicious SQL, High-risk SQL et New SQL pour ce locataire. Vous pouvez également :
Le système impose actuellement les restrictions suivantes aux instances de cluster Standard Edition (Key-Value) :
Pour les instances de cluster KV dont le numéro de version est supérieur ou égal à 4.2.4 mais inférieur à 4.3.0, les informations de diagnostic des requêtes TopSQL et SlowSQL s'affichent.
Pour les instances de cluster KV d'autres versions, seules les informations de diagnostic des requêtes SlowSQL s'affichent.
-
Filtrez les informations de diagnostic SQL par Database, Node, Duration, SQL ID, SQL Text ou Quick Filter.
-
L'option Duration vous permet d'afficher les données des 5 dernières minutes, des 15 dernières minutes, des 30 dernières minutes, de la dernière heure, des 3 dernières heures et des 6 dernières heures. Vous pouvez également personnaliser la durée, en tenant compte des limitations suivantes :
Limite de plage maximale : la plage de temps sélectionnée ne doit pas dépasser 24 heures.
-
Limite de plage minimale :
Pour les données datant de moins de 3 jours : la plage de temps sélectionnée doit être d'au moins 1 minute.
Pour les données datant de 3 à 7 jours : la plage de temps sélectionnée doit être d'au moins 5 minutes.
Pour les données datant de plus de 7 jours : la plage de temps sélectionnée doit être d'au moins 20 minutes.
L'option Quick Filter prend en charge les filtres Full Table Scan, Multi-partition Scan, Multiple Remote Executions, Hard Parsing, Error Executions et Retry Executions.
Si les filtres par défaut ne répondent pas à vos besoins, cliquez sur Add pour ajouter d'autres conditions.
-
Cliquez sur l'icône
d'une colonne pour trier la liste selon cette colonne.Cliquez sur
pour sélectionner les colonnes à afficher dans la liste.Cliquez sur
pour télécharger la liste.Cliquez sur une instruction SQL pour accéder à sa page de détails. Dans la page Overview, consultez le texte SQL, les plans d'exécution physique, l'historique d'exécution SQL, les informations sur les tables et les paramètres avancés de l'instruction SQL.
Aggregate in signifie ignorer le nombre de paramètres constants dans la clause IN des instructions SQL et traiter chaque clause IN comme n'ayant qu'un seul paramètre constant. Selon cette règle, les instructions SQL sont paramétrées et l'ID SQL est calculé ; les requêtes SQL ayant le même ID SQL sont considérées comme appartenant à la même catégorie et sont agrégées. Si la case est cochée, les requêtes SQL s'affichent selon l'agrégation IN, mais cela n'affecte pas les données statistiques.
TopSQL
TopSQL désigne les instructions SQL dont le temps de réponse global est le plus long dans la plage de temps sélectionnée. Voici les opérations possibles liées à TopSQL :
Filtrez les requêtes TopSQL à l'aide de filtres rapides, tels que Full Table Scan, Multi-partition Scan et Multiple Remote Executions afin d'identifier rapidement les instructions SQL nécessitant une optimisation.
Cliquez sur View Samples dans la colonne Operation pour afficher l'instruction SQL.
Dans la colonne Operation d'une requête SQL spécifique, cliquez sur
et sélectionnez Set Throttling. Cochez plusieurs requêtes SQL pour définir la limitation de débit par lot.Cliquez sur le signe plus (+) devant le texte SQL pour afficher la dernière erreur et le résumé des erreurs durant la période statistique.
Cochez l'option Aggregate in en haut à droite de la liste pour afficher les requêtes SQL selon l'agrégation IN, sans affecter les données statistiques. Sélectionnez plusieurs requêtes SQL (y compris celles avec agrégation IN) pour définir la limitation de débit par lot.
Cliquez sur View Optimization Recommendation en haut à droite de la liste pour accéder au centre d'optimisation et consulter les suggestions d'optimisation.
-
Cliquez sur TopSQL Comparison en haut à droite de la liste pour comparer l'exécution de la même instruction SQL pendant différentes périodes sur le même nœud ou pendant la même période sur différents nœuds, ainsi que l'exécution d'une seule instruction SQL pendant différentes périodes ou sur différents nœuds.
Comparaison de différentes périodes : spécifiez la période de référence et la période de comparaison. Cliquez sur Comparative Analysis pour afficher la Comparison of Details et la Comparison of Performance Trends.
Comparaison de différents nœuds : spécifiez le nœud de référence et le nœud de comparaison. Cliquez sur Comparative Analysis pour afficher la Comparison of Details et la Comparison of Response Time Trends.
Comparaison d'une seule requête SQL sur différentes périodes : comparez et analysez l'exécution d'une requête SQL individuelle ou agrégée pendant les périodes de référence et de comparaison, puis consultez le Total Database Time Consumption et le Total Executions.
-
Comparaison d'une seule requête SQL sur différents nœuds : comparez et analysez l'exécution d'une requête SQL individuelle ou agrégée sur différents nœuds d'analyse, puis consultez le Total Database Time Consumption et le Total Executions.
RemarqueDeux instructions SQL ayant le même ID SQL dans la même base de données sont considérées comme identiques.
La comparaison entre différents nœuds s'effectue uniquement lorsque la même instruction SQL est exécutée sur différents nœuds. Sinon, aucun résultat de comparaison ne s'affiche.
Pour effectuer une analyse comparative d'une seule requête SQL sur différentes périodes ou sur différents nœuds, saisissez également l'ID SQL, puis sélectionnez ... > Single SQL Comparison dans la colonne Operation pour la requête SQL correspondante.
-
Cliquez sur Customize Column en haut à droite de la liste pour personnaliser d'autres métriques.
Dans la fenêtre contextuelle, définissez l'Column Expression, par exemple (@avgCpuTime * @avgDiskReads) / 2.
Saisissez le Column Name.
Cliquez sur OK.
Diagnostiquez les requêtes TopSQL d'un locataire spécifié ou de tous les locataires d'un cluster.

-
Lorsque l'utilisation du CPU d'un hôte est trop élevée, filtrez les requêtes TopSQL par base de données et par nœud, puis triez ces instructions SQL par temps CPU par ordre décroissant afin d'identifier les instructions SQL nécessitant le plus une optimisation.

SlowSQL
SlowSQL désigne les instructions SQL dont le temps d'exécution dépasse 500 ms. Voici les opérations possibles liées à SlowSQL :
Filtrez les requêtes SlowSQL à l'aide de filtres rapides, tels que Full Table Scan, Multi-partition scan et Multiple Remote Executions.
Cliquez sur View Samples dans la colonne Operation pour afficher l'instruction SQL.
Dans la colonne Operation d'une requête SQL spécifique, cliquez sur
et sélectionnez Set Throttling. Cochez plusieurs requêtes SQL pour définir la limitation de débit par lot.Cochez l'option Aggregate in en haut à droite de la liste pour afficher les requêtes SQL selon l'agrégation IN, sans affecter les données statistiques. Sélectionnez plusieurs requêtes SQL (y compris celles avec agrégation IN) pour définir la limitation de débit par lot.
Pour personnaliser le seuil des requêtes SQL lentes, sélectionnez ... > Modify Slow SQL Threshold en haut à droite de la liste. Dans la fenêtre contextuelle, ajustez le seuil des requêtes SQL lentes, puis cliquez sur OK.
Suspicious SQL
L'onglet Suspicious SQL affiche le SQL Text, l'SQL ID, la Database, les Diagnostic Results, etc. Les requêtes Suspicious SQL désignent les instructions SQL susceptibles de provoquer des problèmes de performance et qui sont filtrées selon des règles et des algorithmes. Le tableau suivant répertorie les résultats de diagnostic courants et les suggestions de dépannage.
Résultat du diagnostic | Suggestion de dépannage |
Indicateur sans effet | Cela indique une instruction SQL anormale qui nécessite que l'administrateur de base de données (DBA) détermine s'il convient de corriger le plan d'exécution à l'aide d'un outline. |
Analyse complète de la table avec de mauvaises performances | Analysez le plan d'exécution et la structure de la table pour vous assurer que la requête SQL dispose d'index appropriés. |
Mauvaises performances malgré l'utilisation d'index | Vérifiez si les performances sont acceptables dans vos scénarios métier. Si ce n'est pas le cas, améliorez la logique métier ou optimisez les index. |
Dégradation des performances | Vérifiez les modifications de la distribution des données, les pics de requêtes et les changements de plan d'exécution. |
Changement de plan accompagné d'une dégradation des performances | Consultez le DBA. Vous pouvez utiliser un outline pour corriger le plan d'exécution afin de vérifier si l'instruction SQL est anormale. |
Pics d'exécution | Vérifiez le volume métier. Un pic du nombre d'exécutions d'une instruction SQL peut entraîner une baisse des performances globales. |
Charge CPU trop élevée | Vérifiez vos scénarios métier, les modifications de la distribution des données, l'augmentation des requêtes et les changements de plan d'exécution. |
Conflit de verrouillage suspecté | La requête SQL est retentée, ce qui peut être dû à un conflit de verrouillage. Examinez la logique métier pour déterminer s'il existe un scénario de conflit de verrouillage. |
Trop de partitions sont accédées par l'instruction DML | Réécrivez l'instruction SQL pour qu'elle prenne en charge l'élimination des partitions. |
Table tampon suspectée | Vérifiez si la table associée est fréquemment mise à jour. |
Il peut y avoir des numéros de compte grands et petits | Vérifiez s'il existe un problème de skew des données. |
Instabilité du plan d'exécution | Vérifiez s'il existe des problèmes de régression du plan. |
Le temps de génération du plan est trop long | Vérifiez s'il existe des problèmes tels qu'un faible taux de succès du plan. |
High-risk SQL
L'onglet High-risk SQL affiche le SQL Text, la Database, la Cause of Risk, etc. Les requêtes High-risk SQL désignent les instructions SQL susceptibles d'endommager les performances, la sécurité et les données du système.
Le tableau suivant décrit les types de requêtes SQL à haut risque pouvant être identifiés.
Opération | Exemples | Type de risque | Description |
Ajouter ou supprimer une colonne |
| Modification du schéma - Ajout ou suppression de colonnes | - |
Supprimer une table ou une base de données |
| Une table ou une base de données est supprimée | - |
Vider une table |
| Une table de données est vidée | - |
Mise à jour sans condition |
| Mise à jour sans condition | - |
Mise à jour avec une condition toujours vraie |
| Mise à jour avec une condition toujours vraie | - |
Suppression sans condition |
| Suppression sans condition | - |
Suppression avec une condition toujours vraie |
| Suppression avec une condition toujours vraie | - |
Trop de lignes renvoyées |
| Trop de lignes renvoyées | Le paramètre |
Trop de lignes affectées |
| Trop de lignes affectées | Le paramètre |
Trop de partitions impliquées |
| Trop de partitions impliquées | Le paramètre |
Trop de conditions IN | where id in (1,2,3,4,5.....) | Trop de conditions IN | - |
Modification d'index |
| Modification à haut risque - Modification d'index | - |
New SQL
New SQL désigne les instructions SQL qui n'ont pas été exécutées pendant une certaine période (7 jours par défaut) avant l'intervalle de requête, mais qui disposent d'enregistrements d'exécution dans l'intervalle de requête.
L'onglet Add SQL affiche le SQL Text, l'SQL ID, la Database, le Total Executions, etc.