Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

sys.dm_exec_query_profiles (Transact-SQL)

SQL Server 2014

Contrôle la progression en temps réel lorsqu'une requête est en cours d'exécution. Les compteurs sont par opérateur par thread. Les données collectées sont sérialisées dans la sortie SHOWPLAN XML lorsque la requête est terminée. Utilisez cette vue de gestion dynamique pour surveiller la progression de l'exécution de la requête et déterminer où celle-ci consomme le plus de temps. Joignez cette vue de gestion dynamique à d'autres vues de gestion dynamique système identifiées dans le champ de description. Joignez cette vue de gestion dynamique à d'autres compteurs de performances (tels que l'analyseur de performances, xperf) à l'aide de colonnes timestamp.

Important Important

Pour que des informations soient retournées, SET STATISTICS PROFILE ON; ou SET STATISTICS XML ON; doit être défini.

S'applique à : SQL Server (SQL Server 2014 jusqu'à la version actuelle).

Nom de la colonne

Type de données

Description

session_id

smallint

Identifie la session dans laquelle cette requête s'exécute. Référence dm_exec_sessions.session_id.

request_id

int

Identifie la demande cible. Référence dm_exec_sessions.request_id.

sql_handle

varbinary(64)

Identifie la requête cible. Référence dm_exec_query_stats.sql_handle.

plan_handle

varbinary(64)

Identifie la requête cible (références dm_exec_query_stats.plan_handle).

physical_operator_name

nvarchar(256)

Nom de type d'opérateur physique.

node_id

int

Identifie un nœud d'opérateur dans l'arborescence de requête.

thread_id

int

Fait la distinction entre les threads (pour une requête parallèle) qui appartiennent au même nœud d'opérateur de requête.

task_address

varbinary(8)

Identifie la tâche SQLOS utilisée par ce thread. Référence dm_os_tasks.task_address.

row_count

bigint

Nombre de lignes retournées par l'opérateur jusqu'à présent.

rewind_count

bigint

Nombre de rembobinages jusqu'à présent.

rebind_count

bigint

Nombre de reliaisons jusqu'à présent.

end_of_scan_count

bigint

Nombre de fins d'analyses jusqu'à présent.

first_active_time

bigint

Heure du premier appel du constructeur en millisecondes.

estimate_row_count

bigint

Nombre de lignes estimé. Il peut être utile pour comparer estimated_row_count à row_count réel.

last_active_time

bigint

Heure du dernier appel du constructeur en millisecondes.

open_time

bigint

Temps processeur total (en millisecondes) accumulé par les opérations du nœud cible (par exemple, open/close/getrow) jusqu'à présent.

first_row_time

bigint

Horodatage lors de l'ouverture (en millisecondes).

last_row_time

bigint

Horodatage lors de l'obtention de la première ligne (en millisecondes).

close_time

bigint

Horodatage lors de la fermeture (en millisecondes).

elapsed_time_ms

bigint

Dernière fois où le nœud a été détecté en cours d'exécution jusqu'à présent.

cpu_time_ms

bigint

Temps total écoulé (en millisecondes) accumulé par les opérations du nœud cible (par exemple, open/close/getrow) jusqu'à présent.

database_id

smallint

Base de données dans laquelle l'ensemble de lignes est ouvert.

object_id

int

Table dans laquelle l'ensemble de lignes est ouvert.

index_id

int

Index (le cas échéant) dans lequel l'ensemble de lignes est ouvert.

scan_count

bigint

Nombre d'analyses de tables ou d'index jusqu'à présent.

logical_read_count

bigint

Nombre de lectures logiques jusqu'à présent.

physical_read_count

bigint

Nombre de lectures physiques jusqu'à présent.

read_ahead_count

bigint

Nombre de lectures anticipées jusqu'à présent.

write_page_count

bigint

Nombre d'écritures de page jusqu'à présent en raison de débordement.

lob_scan_count

bigint

Nombre d'analyses de tables ou d'index LOB jusqu'à présent.

lob_logical_read_count

bigint

Nombre de lectures logiques LOB jusqu'à présent.

lob_physical_read_count

bigint

Nombre de lectures physiques LOB jusqu'à présent.

lob-read_ahead_count

bigint

Nombre de lectures anticipées LOB jusqu'à présent.

segment_read_count

int

Nombre de lectures anticipées de segment jusqu'à présent.

segment_skip_count

int

Nombre de segments ignorés jusqu'à présent.

Les colonnes d'ID sont les clés primaires de cette vue de gestion dynamique et les clés étrangères qui mettent en corrélation cette vue de gestion dynamique et d'autres vues de gestion dynamique. Les compteurs entrent dans deux catégories, la première correspond aux compteurs cumulatifs, tels que row_count, elapsed_time_ms et la deuxième correspond aux horodateurs. Les horodateurs indiquent l'heure à laquelle certains événements se produisent et peuvent être utilisés pour mettre en corrélation ces événements avec des données externes à SQL Server. Voici des exemples de ces données : analyseur de performances, XPerf, etc.

Les compteurs fournissent des données dans une granularité plus fine que SET STATISTICS IO ON, car ils sont par itérateur par thread. La somme des threads doit correspondre aux résultats STATISTICS IO d'origine. Si le nœud n'a aucun compteur d'E/S, les champs SE ont la valeur NULL.

Nécessite l'autorisation VIEW SERVER STATE sur le serveur.

sys.dm_exec_query_profiles.session_id

sys.dm_exec_sessions.session_id

Un à un

sys.dm_exec_query_profiles.request_id

sys.dm_exec_sessions.request_id

Plusieurs-à-un

sys.dm_exec_query_profiles.sql_handle

sys.dm_exec_query_stats.sql_handle

Plusieurs-à-un

sys.dm_exec_query_profiles.plan_handle

ys.dm_exec_query_stats.plan_handle

Plusieurs-à-un

sys.dm_exec_query_profiles.task_address

sys.dm_os_tasks.task_address

Plusieurs-à-un

sys.dm_exec_query_profiles.database_id

sys.databases.database_id

Plusieurs-à-un

sys.dm_exec_query_profiles.object_id

sys.objects.object_id

Plusieurs-à-un

sys.dm_exec_query_profiles.index_id

sys.indexes.index_id

Plusieurs-à-un

L'instruction suivante retourne des informations sur les opérateurs de requête.

SET STATISTICS PROFILE ON;
GO

SELECT  
       node_id,physical_operator_name, SUM(row_count) row_count, SUM(estimate_row_count) AS estimate_row_count, 
   CAST(SUM(row_count)*100 AS float)/SUM(estimate_row_count)
FROM sys.dm_exec_query_profiles 
WHERE session_id=54
GROUP BY node_id,physical_operator_name
ORDER BY node_id;
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft