Activité des requêtes, type de collecteur
Le type de collecteur Activité des requêtes est un type de collecteur personnalisé utilisé par l'un des jeux d'éléments de collecte de données prédéfinis, Statistiques sur les requêtes.
Ce type de collecteur est utilisé pour collecter, sur des requêtes répondant à des critères prédéfinis, des statistiques et des informations sur leur activité, ainsi que le plan et le texte de requête. Si vous créez votre propre jeu d'éléments de collecte à l'aide de ce type de collecteur, les informations collectées seront les mêmes qu'avec Statistiques sur les requêtes. Nous vous recommandons par conséquent d'utiliser le jeu d'éléments de collecte Statistiques sur les requêtes prédéfini.
Architecture et traitement
Le type de collecteur Activité des requêtes est constitué des éléments suivants :
schéma des paramètres d'entrée (interne) ;
package SSIS pour recueillir les données (QueryActivityCollect.dtsx) ;
package SSIS pour télécharger les données (QueryActivityUpload.dtsx).
Ce type de collecteur utilise en outre des tâches ou des transformations personnalisées pour analyser et sélectionner des données en vue de leur stockage dans l'entrepôt de données de gestion.
Le type de collecteur Activité des requêtes effectue les opérations décrites ci-dessous.
Il collecte des échantillons de dm_exec_requests, dm_exec_sessions et une sélection d'autres vues de gestion dynamique associées. Cette collecte de données est implémentée sous forme de requête jointe unique. La collecte de données se produit selon la fréquence spécifiée pour l'élément de collecte.
Il collecte les instantanés de la vue de gestion dynamique dm_exec_query_stats selon une fréquence identique à la fréquence de téléchargement du jeu d'éléments de collecte. Par défaut, la fréquence de téléchargement du jeu d'éléments de collecte Statistiques sur les requêtes est de 15 minutes.
Phase de collecte
Le tableau suivant montre la requête utilisée pendant la phase de collecte. Cette requête est définie dans le package SSIS QueryActivityCollect.dtsx.
Fréquence de collecte |
10 secondes |
Requête |
|
Phase de téléchargement
Pendant la phase de téléchargement, les données collectées sont analysées afin d'identifier celles qui seront enregistrées dans l'entrepôt de données de gestion. Cette analyse détermine un jeu de statistiques sur les requêtes, de plans de requête et de texte de requête qui doit être enregistré.
Un élément clé de ce processus est l'algorithme qui sélectionne les requêtes et les plans de requête à enregistrer dans l'entrepôt de données. Cet algorithme fonctionne comme suit :
Il collecte un instantané de sys.dm_exec_query_stats. Cet instantané est recueilli selon une fréquence identique à la fréquence de téléchargement du jeu d'éléments de collecte. (Par défaut, celle-ci est de 15 minutes.)
Il récupère l'instantané le plus récent (de 15 minutes plus tôt) pour le comparer au nouveau. L'instantané le plus récent est mis en cache localement et n'a pas à être récupéré à partir de l'entrepôt de données de gestion.
Il sélectionne les trois requêtes principales de chaque instantané sur la base des mesures suivantes :
Temps écoulé
Temps de travail
Lectures logiques
Écritures logiques
Lectures physiques
Nombre d'exécutions
Ce processus fournit 6 x 3 sql_handles et plan_handles.
Il identifie les sql_handles et plan_handles uniques.
Il recoupe ce résultat avec les sql_handles et plan_handles stockés dans l'entrepôt de données.
Pour les nouveaux sql_handles et plan_handles, il obtient le plan et le texte à partir du serveur. Si le plan ou le texte est introuvable (il peut avoir déjà été supprimé du cache local), il stocke les handles dans l'entrepôt de données de gestion.
Pour chaque texte de sql_handle recueilli, il normalise le texte (par exemple, il supprime les paramètres et les littéraux) et calcule la valeur de hachage unique pour le texte normalisé. Il stocke le texte normalisé, la valeur de hachage et le mappage au sql_handle d'origine dans l'entrepôt de données de gestion.
Le tableau suivant montre la requête utilisée pour obtenir les instantanés et analyser les données, puis les télécharger vers l'entrepôt de données de gestion. Cette requête est définie dans le package SSIS QueryActivityUpload.dtsx.
Requête |
|
Sortie de la requête |
snapshots.query_stats, snapshots.notable_query_text et snapshots.notable_query_plan |
Voir aussi