查看SQLSERVER当前正在执行的sql信息

时间:2021-03-12 04:33:04

可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称为Profiler跟踪。这个就不多说了,大家都知道,下面是使用代码为实现相同的效果。

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

 SELECT  [Spid] = session_id ,            ecid ,            [Database] = DB_NAME(sp.dbid) ,            [User] = nt_username ,            [Status] = er.status ,            [Wait] = wait_type ,            [Individual Query] = SUBSTRING(qt.text,                                           er.statement_start_offset / 2,                                           ( CASE WHEN er.statement_end_offset = -1                                                  THEN LEN(CONVERT(NVARCHAR(MAX), qt.text))                                                       * 2                                                  ELSE er.statement_end_offset                                             END - er.statement_start_offset )                                           / 2) ,            [Parent Query] = qt.text ,            Program = program_name ,            hostname ,            nt_domain ,            start_time    FROM    sys.dm_exec_requests er            INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid            CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt    WHERE   session_id > 50 -- Ignore system spids.            AND session_id NOT IN ( @@SPID ) -- Ignore this current statement.ORDER BY    1 ,            2