Situatie
Mai jos este o procedura ce returneaza pentru un server Microsoft SQL informatii detaliate despre toate interogarile active.
Solutie
create procedure RunningQuery
as
SELECT
[Spid] = [er]. [session_Id] ,
[Database] = DB_NAME ([sp]. [dbid]) ,
[User] = [sp]. [nt_username] ,
[Status] = [er]. [status] ,
[er] .[Start_time] ,
[er] .[Cpu_time] ,
[er] .[Total_elapsed_time],
[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 = [sp]. [program_name] ,
[er] .[Command] ,
[sp] .[Hostname] ,
[sp] .[Nt_domain]
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
[er] .[session_Id]> 50
AND [er]. [session_Id] NOT IN ( @@SPID )
ORDER BY [er].[session_Id] ,[sp]. [ecid]
Leave A Comment?