代码乱了(靳如坦的技术blog)

专注于.net,c#,Ajax、Sql Server、SmartClient等相关的开发
posts - 152, comments - 775, trackbacks - 13, articles - 2
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

SQL:获取正在执行的SQL语句

Posted on 2010-10-14 10:57 代码乱了 阅读(160) 评论(0) 编辑 收藏
代码
 SELECT      r.scheduler_id as 排程器識別碼,  
             status         
as 要求的狀態,  
             r.session_id   
as SPID,  
             r.blocking_session_id 
as BlkBy,  
             
substring(  
                 
ltrim(q.text),  
                 r.statement_start_offset
/2+1,  
                 (
CASE  
                  
WHEN r.statement_end_offset = -1  
                  
THEN LEN(CONVERT(nvarchar(MAX), q.text)) * 2  
                  
ELSE r.statement_end_offset  
                  
END - r.statement_start_offset)/2)  
                  
AS [正在執行的 T-SQL 命令],  
             r.cpu_time      
as [CPU Time(ms)],  
             r.start_time    
as [開始時間],  
             r.total_elapsed_time 
as [執行總時間],  
             r.reads              
as [讀取數],  
             r.writes             
as [寫入數],  
             r.logical_reads      
as [邏輯讀取數],  
             
-- q.text, /* 完整的 T-SQL 指令碼 */  
             d.name               as [資料庫名稱]  
 
FROM        sys.dm_exec_requests r   
             
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS q  
             
LEFT JOIN sys.databases d ON (r.database_id=d.database_id)  
 
WHERE       r.session_id > 50 AND r.session_id <> @@SPID  
 
ORDER BY    r.total_elapsed_time desc