Comment puis-je trouver la requête associée qui est exécutée si j'ai le SPID. J'essaie de trouver quelle requête est associée puisque le processus semble être bloqué.
Réponses
Trop de publicités?--Find Current SQL Statements that are Running
SELECT SPID = er.session_id
,STATUS = ses.STATUS
,[Login] = ses.login_name
,Host = ses.host_name
,BlkBy = er.blocking_session_id
,DBName = DB_Name(er.database_id)
,CommandType = er.command
,ObjectName = OBJECT_NAME(st.objectid)
,CPUTime = er.cpu_time
,StartTime = er.start_time
,TimeElapsed = CAST(GETDATE() - er.start_time AS TIME)
,SQLStatement = st.text
FROM sys.dm_exec_requests er
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) st
LEFT JOIN sys.dm_exec_sessions ses
ON ses.session_id = er.session_id
LEFT JOIN sys.dm_exec_connections con
ON con.session_id = ses.session_id
WHERE st.text IS NOT NULL
Quelle version de sql server ? pour 2000 et plus vous pouvez faire
dbcc inputbuffer (spid)
Cela donnera les 255 premiers caractères
remplacer spid par le numéro numérique pour spid
pour les versions 2005 et ultérieures, remplacez @@SPID par le spid que vous recherchez.
select dest.*
from sys.dm_exec_requests as der
cross apply sys.dm_exec_sql_text (der.sql_handle) as dest
where session_id = @@spid
Supposant SQL Server 2005+
SELECT
CASE
WHEN statement_end_offset = -1
THEN text
ELSE SUBSTRING(text,statement_start_offset/2,(statement_end_offset- statement_start_offset)/2)
END, *
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
WHERE session_id = <whatever>
Vous pouvez télécharger le " Qui est actif ? "qui rassemble beaucoup plus d'informations que cela.
Si vous le regardez dans le moniteur d'activité, vous devriez pouvoir trouver le SQL associé au SPID en faisant un clic droit et en sélectionnant "détails".
Voici quelques liens pour vous aider à démarrer :
- http://support.microsoft.com/kb/298475
- http://msdn.microsoft.com/en-us/library/ms188272.aspx
- http://msdn.microsoft.com/en-us/library/ms175518.aspx
Vous pouvez également le tuer à partir de là en dernier recours.