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