
دی 11, 1401دستورات کاربردی
برای اینکه تعداد کانکشنهای فعال به دیتابیس را مشاهده نمایید از کوئری زیر استفاده نمایید.
تعداد کانکشنهای فعال به ازای هر دیتابیس را بصورت جداگانه نشان می دهد همچنین دستور kill مربوط به آن را.
--==============================================================================
-- 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.
--==============================================================================
DECLARE @dbname SYSNAME =NULL
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
,DatabaseName = COALESCE( db_name(sdes.database_id), N'')
,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_tran_locks t
INNER JOIN sys.dm_exec_sessions sdes
ON t.request_session_id = sdes.session_id
LEFT OUTER JOIN sys.dm_exec_connections AS sdec
ON sdec.session_id = sdes.session_id
OUTER 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 t.resource_type = 'database'
and t.resource_database_id = CASE WHEN @dbname IS NULL
THEN t.resource_database_id
ELSE DB_ID(@dbname)
END
and t.request_type = 'LOCK'
and t.request_status = 'GRANT'
تصاویری از اجرای اسکریپت فوق :