Как узнать, какой связанный запрос выполняется, если у меня есть SPID. Попытка выяснить, какой запрос связан, поскольку процесс, похоже, завис.
SQL Server — зависший процесс — SPID-запрос
comment
какую версию SQL Server вы используете?
- person Abe Miessler   schedule 04.03.2011
Ответы (3)
какая версия sql сервера? для 2000 и выше можно сделать
dbcc inputbuffer (spid)
Это даст первые 255 символов
замените spid числовым номером для spid
для 2005 и выше измените @@SPID на SPID, который вы ищете
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
person
SQLMenace
schedule
04.03.2011
Предполагая, что 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>
Вы можете загрузить файл "Who is Active?", которая собирает гораздо больше информации, чем эта.
person
Martin Smith
schedule
04.03.2011
Если вы посмотрите на него в мониторе активности, вы сможете найти SQL, связанный с SPID, щелкнув правой кнопкой мыши и выбрав «подробности».
Вот несколько ссылок для начала:
- http://support.microsoft.com/kb/298475
- http://msdn.microsoft.com/en-us/library/ms188272.aspx
- http://msdn.microsoft.com/en-us/library/ms175518.aspx
Вы также можете убить его оттуда в крайнем случае.
person
Abe Miessler
schedule
04.03.2011