SLEEPING = DORMINDO 

 

 

E como diz o ditado popular Deus ajuda a quem cedo madruga. 

E esse negócio de dormir não dá certo rs...

É justamente o que acontece quando uma conexão feita a partir de um script ASP.Net, por exemplo, deixa a conexão sleeping por um tempo muito grande.

Mas como um script pode deixar isso acontecer...

Lembra que a gente sempre pede para fechar a conexão após executar o que deseja, tipo USA O CLOSE.

Mas como sempre lá vem o DBA Salvador dando um jeito.

 

 ==========================================================================>

 

-- select status,* from SYS.SYSPROCESSES where status='sleeping' and cmd!='TASK MANAGER    '

-- select status,* from SYS.SYSPROCESSES where status='sleeping' 

-- sp_who2

-- select status,* from SYS.SYSPROCESSES where status='sleeping'

-- select * from sys.dm_exec_requests

-- DECLARE @kill_id smallint 

 

DECLARE @numero_spid varchar(10)

DECLARE processo CURSOR SCROLL FOR select spid from SYS.SYSPROCESSES  where status='sleeping'

OPEN processo

FETCH NEXT FROM processo INTO @numero_spid

WHILE (@@FETCH_STATUS = 0)

BEGIN

-- Kill the current spid here

-- KILL @kill_id <---This line will not work

-- Kill  @numero_spid

EXECUTE ('KILL ' + @numero_spid)

 

-- Get the next cursor row

FETCH NEXT FROM processo INTO @numero_spid

END 

CLOSE processo

 

DEALLOCATE processo

 

<======================================================================================

Este script mata as conexões sleeping, vale a pena colocar isso em um job rodando de tempos em tempos, tipo a cada 3 ou 5 minutos.

 

Boa Sorte ;-)