如果我有SPID,如何找到正在执行的关联查询.试图弄清楚哪个查询正在关联,因为该过程似乎已挂起.
小智 15
--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
Run Code Online (Sandbox Code Playgroud)
SQL*_*ace 12
什么版本的sql server?2000年及以后你可以做到
dbcc inputbuffer (spid)
Run Code Online (Sandbox Code Playgroud)
这将给出前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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50264 次 |
| 最近记录: |