Surveillance de la progression d'une requête SQL dans SQL SERVER
J'ai vu une question similaire, qui a demandé comment surveiller la progression de la sauvegarde /restauration de l'opération:
Est-il un script SQL que je peux utiliser pour déterminer le progrès de SQL Server sauvegarde ou de la restauration?
Je voudrais savoir si il y a une requête similaire /manière de voir combien de temps la requête a laissé jusqu'à la fin.
Par exemple, une requête habituellement s'est écoulé de temps de 5 minutes.
Je voudrais savoir combien de temps il reste jusqu'à sa fin LORS de la requête de l'exécution.
Merci d'avance,
Roni.
source d'informationauteur Roni Vered
Vous devez vous connecter pour publier un commentaire.
Il n'y a aucun moyen de savoir combien il reste de temps. Une requête du temps d'exécution dépend de beaucoup de choses au-delà du réel de la requête elle-même: le verrouillage et de blocage d'autres requêtes, d'autres processus de consommation de ressources (cpu/utilisation du disque), le système d'exploitation, réseau, etc. Que faire si votre 5 minutes de la requête est en cours d'exécution, mais quelqu'un d'autre lance un grand rapport, votre requête peut s'exécuter à 5:30. Que faire si quelqu'un commence à télécharger un fichier volumineux et les cochons ensemble de la bande passante du réseau? Que faire si le système d'exploitation décide de faire quelque chose dans le fond, etc. Jusqu'à ce que toutes les lignes sont retournées, la requête n'est pas fait, mais il peut fonctionner dans une variable de temps.
sys.dm_exec_requests
a cette info, donc quelque chose comme cela vous donnera le progrès:Ce que vous voulez sont Vivre Statistiques Sur Les Requêtes.
Vous pouvez l'activer dans la version la plus récente de SSMS avec un bouton à côté de celui qui vous donne la normale du plan de requête:
Cela vous donne ensuite un live plan de requête:
En bas, vous verrez le progrès total:
Oui, vous pouvez connaître le temps écoulé estimé à moins qu'il pourrait y avoir des imprévus affectant l'exécution du processus.