Vous pouvez essayer la requête ci-dessous, ceci pourrait vous aider à fermer toutes les connexions de couchage qui sont âgés de plus de 60 min.

Toutefois, la suggestion est de fermer les connexions des utilisateurs du côté de l'application elle-même au lieu du côté de SQL Server.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Code Snippet
DECLARE @v_spid INT
DECLARE Users CURSOR
FAST_FORWARD FOR
SELECT SPID
FROM master.dbo.sysprocesses (NOLOCK)
WHERE spid>50 
AND status='sleeping'
AND DATEDIFF(mi,last_batch,GETDATE())>=60 --Check sleeping connections that exists before 60 min..
AND spid<>@@spid
OPEN Users
FETCH NEXT FROM Users INTO @v_spid
WHILE (@@FETCH_STATUS=0)
BEGIN
PRINT 'KILLing '+CONVERT(VARCHAR,@v_spid)+'...'
EXEC('KILL '+@v_spid)
FETCH NEXT FROM Users INTO @v_spid
END
CLOSE Users
DEALLOCATE Users