Qui di seguito è il mio script per trovare tutte le sessioni collegate a un database e si può controllare se tali sessioni stanno facendo ogni I/O e c'è un'opzione per ucciderli.
Lo script mostra anche lo stato di ogni sessione.
Dai un'occhiata qui sotto.
--==============================================================================
-- See who is connected to the database.
-- Analyse what each spid is doing, reads and writes.
-- If safe you can copy and paste the killcommand - last column.
-- Marcelo Miorelli
-- 18-july-2017 - London (UK)
-- Tested on SQL Server 2016.
--==============================================================================
USE master
go
SELECT
sdes.session_id
,sdes.login_time
,sdes.last_request_start_time
,sdes.last_request_end_time
,sdes.is_user_process
,sdes.host_name
,sdes.program_name
,sdes.login_name
,sdes.status
,sdec.num_reads
,sdec.num_writes
,sdec.last_read
,sdec.last_write
,sdes.reads
,sdes.logical_reads
,sdes.writes
,sdest.DatabaseName
,sdest.ObjName
,sdes.client_interface_name
,sdes.nt_domain
,sdes.nt_user_name
,sdec.client_net_address
,sdec.local_net_address
,sdest.Query
,KillCommand = 'Kill '+ CAST(sdes.session_id AS VARCHAR)
FROM sys.dm_exec_sessions AS sdes
INNER JOIN sys.dm_exec_connections AS sdec
ON sdec.session_id = sdes.session_id
CROSS APPLY (
SELECT DB_NAME(dbid) AS DatabaseName
,OBJECT_NAME(objectid) AS ObjName
,COALESCE((
SELECT TEXT AS [processing-instruction(definition)]
FROM sys.dm_exec_sql_text(sdec.most_recent_sql_handle)
FOR XML PATH('')
,TYPE
), '') AS Query
FROM sys.dm_exec_sql_text(sdec.most_recent_sql_handle)
) sdest
WHERE sdes.session_id <> @@SPID
AND sdest.DatabaseName ='yourdatabasename'
--ORDER BY sdes.last_request_start_time DESC
--==============================================================================
fonte
2017-07-18 17:11:57
quando si deve filtrare per specifica selezione db da sys.sysprocesses è meglio –
come vorrei aggiungere un filtro solo per i database specifici? WHERE dbname = 'nome database' ?? Ho provato questo e ho ricevuto un errore –
@ Geo.Dude, Iman Abidi significa creare la tua query di selezione da sys.sysprocesses e aggiungere una clausola where a quella query. Dovrai filtrare su dbid. Puoi trovare l'ID del database in sys.databases (o puoi unirli a questi due). – bvgheluwe