Forum
Merhaba,
Veritabanı SQL olan bir program kullanmaktayız. Programa aynı anda 30 kişi bağlanabiliyor ve ilk açan isterse akşama kadar açık bırakıp işgal edebiliyor programı.
Benim sorum şu;
Programa giriş yapıp örneğin son 1 saat içerisinde hiçbir işlem yapmamış olan kullanıcıları bulup onları programdan düşürmek istiyorum.
Bunu görebileceğim bir komut, program vs. varsa yardımcı olur musunuz?
Merhaba @ozguraltinel Activity Monitor den kullanıcılara ulaşabilirsiniz ya da aşağıdaki query ile ulaşıp kill 122 gibi düşürebilirsiniz. KullaniciAt satırındaki Kill 51 query de çalıştırdığında kullanıcıyı programdan atacaktır.
SELECT
sessi.session_id ,
sessi.login_time ,
sessi.last_request_start_time ,
sessi.last_request_end_time ,
sessi.host_name ,
sessi.program_name ,
sessi.login_name ,
sessi.status ,
cnnct.last_read ,
cnnct.last_write ,
sessit.DbAdi ,
sessi.nt_domain ,
sessi.nt_user_name ,
cnnct.client_net_address ,
cnnct.local_net_address ,
sessit.Query ,
'Kill ' + CAST(sessi.session_id AS VARCHAR) KullaniciAt
FROM sys.dm_exec_sessions AS sessi
INNER JOIN sys.dm_exec_connections AS cnnct
ON cnnct.session_id = sessi.session_id
CROSS APPLY
( SELECT
DB_NAME( dbid ) AS DbAdi ,
COALESCE(
( SELECT
text AS [processing-instruction(definition)]
FROM sys.dm_exec_sql_text( cnnct.most_recent_sql_handle )
FOR XML PATH( '' ), TYPE) ,
'' ) AS Query
FROM sys.dm_exec_sql_text( cnnct.most_recent_sql_handle ) ) sessit
WHERE sessi.session_id <> @@SPID ;
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************