J'ai vu une question similaire qui demandait comment surveiller la progression d'une opération de sauvegarde/restauration: Existe-t-il un script SQL que je peux utiliser pour déterminer la progression d'une sauvegarde ou d'une restauration SQL Server?
Je voudrais savoir s'il existe une requête/méthode similaire pour voir combien de temps il reste avant la fin de la requête. Par exemple, une requête est généralement a un temps écoulé de 5 minutes. Je voudrais savoir combien de temps il reste jusqu'à ce qu'il se termine PENDANT l'exécution de la requête.
Il n'y a aucun moyen de savoir combien de temps il reste. L'exécution d'une requête dépend de beaucoup de choses au-delà de la requête elle-même: verrouillage/blocage d'autres requêtes, autres processus consommant des ressources (utilisation du processeur/disque), du système d'exploitation, du réseau, etc. Que se passe-t-il si votre requête de 5 minutes est en cours d'exécution, mais quelqu'un d'autre lance un rapport volumineux, votre requête peut s'exécuter à 17 h 30 maintenant. Et si quelqu'un commence à télécharger un fichier volumineux et monopolise toute la bande passante du réseau? Que faire si le système d'exploitation décide de faire quelque chose en arrière-plan, etc. Jusqu'à ce que toutes les lignes soient renvoyées, la requête n'est pas terminée, mais elle peut s'exécuter dans un délai variable.
Ce que vous voulez, c'est Live Query Statistics .
Vous pouvez l'activer dans la version la plus récente de SSMS avec un bouton à côté de celui qui vous donne le plan de requête normal:
Cela vous donne alors un plan de requête en direct:
En bas, vous voyez la progression totale:
sys.dm_exec_requests
a cette information, donc quelque chose comme ça vous donnera le progrès:
SELECT
percent_complete
FROM sys.dm_exec_requests
--where session_id=51 or command like 'restore%'
Oui, vous pouvez connaître le temps écoulé estimé, sauf en cas de situation inattendue affectant l'exécution du processus.
Select total_elapsed_time,
* from sys.dm_exec_sessions where session_id="your Id here"