. , . " ". -
CREATE PROCEDURE TrackedToKill
AS
BEGIN
DECLARE @Counter bigint = 0
WHILE 1 = 1
BEGIN
SET @Counter = @Counter + 1
WAITFOR DELAY '00:00:30'
END
END
,
SELECT session_id,
command,database_id,user_id,
wait_type,wait_resource,wait_time,
percent_complete,estimated_completion_time,
total_elapsed_time,reads,writes,text
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text (sys.dm_exec_requests.sql_handle)
WHERE text LIKE '%Kill Me%'
AND session_id <> @@SPID
, . , , . , , SQL . , , , (.. , , , ).
CREATE PROCEDURE HunterKiller
AS
BEGIN
DECLARE @SessionToKill int
DECLARE @SQL nvarchar(3000)
WHILE 1=1
BEGIN
SET @SessionToKill = (SELECT TOP 1 session_id
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text (sys.dm_exec_requests.sql_handle)
WHERE session_id <> @@SPID
AND text LIKE '%Kill Me%'
AND total_elapsed_time >= 15000)
SET @SQL = 'KILL ' + CONVERT(nvarchar,@SessionToKill)
EXEC (@SQL)
WAITFOR DELAY '00:00:05'
END
END