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 captures instantanées 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 une capture instantanée de sys.dm_exec_query_stats. Cette capture instantanée est recueillie 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 la capture instantanée la plus récente (de 15 minutes plus tôt) pour la comparer à la nouvelle. La capture instantanée la plus récente est mise en cache localement et n'a pas à être récupérée à partir de l'entrepôt de données de gestion.
Il sélectionne les trois requêtes principales de chaque capture instantanée 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 captures instantanées 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 |
Historique des modifications
Mise à jour du contenu |
---|
Ajout des sections « Phase de collecte » et « Phase de téléchargement ». |
Remplacement des critères concernant les données qui seront enregistrées dans l'entrepôt de données de gestion pendant la phase de téléchargement par la requête définie dans le package SSIS QueryActivityUpload.dtsx. |
Voir aussi