SQL Anlık Sorguları Görmek(real time sql queries)
SQL Anlık Sorguları Görmek(real time sql queries) ,DBA olarak anlık sorguları görmek isteriz . Aşağıda ki sorgu da sorgunun ne kadar sürdüğünü, locklanıyorsa hangi session_id ile locklandığını ,sorgunun bekleme tipini ve hangi makineden geldiği gibi bilgileri bu sorgu yardımı ile görebiliriz.
Yukarıdakilere ek olarak belirtilen t-sqldeki kolonların anlamları:
- Query çalışma süresi
- backup percent complete(backup tamamlanma yüzdesi )
- query last wait type (çalışan sorgunun şuan neden dolayı beklediği)
- statement_text = çalışan query
- host_name = querynin hangi sunucudan gönderdildiği
- program_name = querynin hangi program üzerinden gönderildiği
select r.total_elapsed_time / 1000.0 as total_elapsed_s,percent_complete,r.blocking_session_id,
r.last_wait_type,
s.login_name,'MySessionID= ' + cast(r.session_id as varchar) as MySessionID,DB_NAME(r.database_id) as DatabaseName,command
,SUBSTRING(t.text, (r.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(t.text)
ELSE r.statement_end_offset END
- r.statement_start_offset)/2) + 1) AS statement_text
,r.status,wait_time
,wait_type,wait_resource,text,start_time,s.program_name
,r.last_wait_type,s.host_name,r.granted_query_memory * 8 / 1024 as memory_mb
from sys.dm_exec_requests r
inner join sys.dm_exec_sessions s on r.session_id = s.session_id
cross apply sys.dm_exec_sql_text(r.sql_handle) t
where r.session_id <> @@SPID
--and r.database_id =DB_ID('Hangi DB'ye gelen sorguları listelemek istiyorsanız')
--and t.text like '%text bazlı sorgulama yapmak için text içeriği%'
--and r.session_id = sessionid
--and s.Login_Name like '%Login bazlı filtreleme%'
--and s.program_name LIKE '%Program bazlı filtreleme örneğin Management%'
--and r.wait_type !='bekleme tipine göre filtreleme'
--and r.blocking_session_id<>0"
order by start_time asc
![]()

