* Bonjour, *
J'ai du procéder à un restauration d'une base de données.
Pendant ce temps, j'ai lancé le code suivant, afin de vérifier les requêtes en cours d'exécution :
Et curieusement, mon instruction de restauration n'était pas visible dans la liste des processus en cours d'exécution (même en exécutant la requête plusieurs fois).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT r.Start_time, r.Status, s.text FROM sys.dm_exec_requests AS r OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) s LEFT JOIN sys.dm_exec_connections AS c ON r.session_id = c.session_id WHERE r.STATUS = 'running'
J'ai donc exécuté le code suivant :
Et là, mon processus de restauration est bien présent dans la liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT ec.client_net_address, es.[program_name], es.[host_name], es.login_name, st.text, es.status, es.last_request_start_time, es.last_request_end_time FROM sys.dm_exec_sessions AS es INNER JOIN sys.dm_exec_connections AS ec ON es.session_id = ec.session_id CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) st WHERE es.status = 'running' ORDER BY es.Login_Name
J'en conclu donc que le status "running" de la DMV sys.dm_exec_requests n'est pas le même que celui de la DMV sys.dm_exec_sessions.
Qu'en pensez-vous ?
PS. Je suis en SQL 2005 SP3
Partager