2012-06-21 21 views

cevap

9

Bu görev için Profiler kullanmak daha iyidir.

Ama sistem görünümleri sys.dm_exec_query_stats, returns aggregate performance statistics for cached query plans ama sadece paraya planları için ve sys.dm_exec_sql_text kullanabilirsiniz SQL Server 2005+ bir sorgu istiyorum. Maalesef oturum kimliği ile ilgili bilgileri yoktur, böylece yalnızca sunucu örneğinin paraya çevrilmiş sorgularını alabilirsiniz.

set transaction isolation level read uncommitted 
select top 1000 
    creation_time, 
    last_execution_time, 
    case 
     when sql_handle IS NULL then ' ' 
     else(substring(st.text,(qs.statement_start_offset+2)/2,(
      case 
       when qs.statement_end_offset =-1 then len(convert(nvarchar(MAX),st.text))*2  
       else qs.statement_end_offset  
      end - qs.statement_start_offset)/2 )) 
    end as query_text, 
    db_name(st.dbid)as db_name, 
    object_schema_name(st.objectid, st.dbid)+'.'+object_name(st.objectid, st.dbid) as object_name 
FROM sys.dm_exec_query_stats qs 
    cross apply sys.dm_exec_sql_text(sql_handle) st 
ORDER BY db_name, object_name 
+0

harika :). Aradığım şey bu. Çok teşekkürler –

+0

@PriteshGupta Hoşgeldiniz. –

4

:

How do I show running processes in Oracle DB?

SQL server 2005+ size bence SPID'yi kullanarak önceki olanları öğrenebilirsiniz. Size XXX SPID ile işlem gerçekleştirirsiniz. Belki de 'SPID' sürecini çalıştırabilir ve çalışan kişinin SPID'sine kadar bir döngü yaratabilirsiniz. Böylece tüm süreçleri süreçleri çalıştırana kadar alabilirsiniz.

DECLARE @sqltxt VARBINARY(128) 
SELECT @sqltxt = sql_handle 
FROM sys.sysprocesses 
WHERE spid = XXX 
SELECT TEXT 
FROM sys.dm_exec_sql_text(@sqltext) 
GO 

Ayrıca bunlarla sql deyimlerini çalıştırabilirsiniz;

sizin için yararlı olacaktır. Tahminim

+0

sys.dm_exec_requests yalnızca şu anda yürütülen sorgular hakkında bilgi içeriyor mu? –

+0

Igor, evet. Bu koşacak olanlar olacak. Tekrar düzenleme:/ – alicanbatur

+0

http://blog.sqlauthority.com/2009/07/19/sql-server-get-last-running-query-based-on-spid/ oturum başına yürütülen son sorguyu göstermenin 3 yolunu sunar. . Ben 'DBCC INPUTBUFFER (@DesiredSPID)' birini seviyorum. – milivojeviCH