加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

获得客户端详细信息以及每个进程的sql语句

发布时间:2016-08-16 15:58:37 所属栏目:MsSql教程 来源:站长网
导读:b性能下降时很多朋友都想监控到是哪个客户端、哪个用户、哪台客户端发起的什么会话sql语句, 但是微软自带的要使用profiler才能实现,但是考虑性能问题,很多人
b性能下降时很多朋友都想监控到是哪个客户端、哪个用户、哪台客户端发起的什么会话sql语句,

但是微软自带的要使用profiler才能实现,但是考虑性能问题,很多人不愿意!

网上有 很多脚本能监控到客户端信息,但是唯独不能获取客户端进程的sql语句!

我自己写了一个,供 参考:

--1.新建存储过程
--create   proc   prtest
--@spid   int
--as
--dbcc   inputbuffer   (@spid)
--go

-- 2.将结果保存到临时变量#tmp

SELECT  [Session ID] AS 会话ID ,
       [Login] AS 用户名 ,
       [Database] AS 数据库 ,
       [Task State] AS 状态 ,
       [Command] AS 命令 ,
       [Application] AS 应用软件 ,
       [Wait Time (ms)] AS 等待时间 ,
       [Wait Type] AS 等待类型 ,
       [Host Name] AS 客户机名 ,
       [Net Address] AS IP地址  INTO #tmp
   
FROM    ( SELECT    [Session ID] = s.session_id ,
                   [User Process] = CONVERT(CHAR(1), s.is_user_process) ,
                   [Login] = s.login_name ,
                   [Database] = ISNULL(DB_NAME (p.dbid), N'') ,
                   [Task State] = ISNULL(t.task_state, N'') ,
                   [Command] = ISNULL(r.command, N'') ,
                   [Application] = ISNULL(s.program_name, N'') ,
                   [Wait Time (ms)] = ISNULL(w.wait_duration_ms, 0) ,
                   [Wait Type] = ISNULL (w.wait_type, N'') ,
                   [Wait Resource] = ISNULL(w.resource_description, N'') ,
                   [Blocked By] = ISNULL (CONVERT (VARCHAR, w.blocking_session_id),
                                         '') ,
                   [Head Blocker] = CASE
                                         WHEN r2.session_id IS NOT NULL
                                              AND ( r.blocking_session_id = 0
                                                    OR r.session_id IS NULL
                                                  ) THEN '1'
                                         ELSE ''
                                    END ,
                   [Total CPU (ms)] = s.cpu_time ,
                   [Total Physical I/O (MB)] = ( s.reads + s.writes ) * 8
                   / 1024 ,
                   [Memory Use (KB)] = s.memory_usage * 8192 / 1024 ,
                   [Open Transactions] = ISNULL (r.open_transaction_count, 0) ,
                   [Login Time] = s.login_time ,
                   [Last Request Start Time] = s.last_request_start_time ,
                   [Host Name] = ISNULL(s.host_name, N'') ,
                   [Net Address] = ISNULL(c.client_net_address, N'') ,
                   [Execution Context ID] = ISNULL(t.exec_context_id, 0) ,
                   [Request ID] = ISNULL(r.request_id, 0) ,
                   [Workload Group] = ISNULL(g.name, N'')
         FROM      sys.dm_exec_sessions s
                   LEFT OUTER JOIN sys.dm_exec_connections c ON ( s.session_id = c.session_id )
                   LEFT OUTER JOIN sys.dm_exec_requests r ON ( s.session_id = r.session_id )
                   LEFT OUTER JOIN sys.dm_os_tasks t ON ( r.session_id = t.session_id
                                                          AND r.request_id = t.request_id
                                                        )
                   LEFT OUTER JOIN (
                                     SELECT    * ,
                                               ROW_NUMBER() OVER ( PARTITION BY waiting_task_address ORDER BY wait_duration_ms DESC ) AS row_num
                                     FROM      sys.dm_os_waiting_tasks
                                   ) w ON ( t.task_address = w.waiting_task_address )
                                          AND w.row_num = 1
                   LEFT OUTER JOIN sys.dm_exec_requests r2 ON ( s.session_id = r2.blocking_session_id )
                   LEFT OUTER JOIN sys.dm_resource_governor_workload_groups g ON ( g.group_id = s.group_id )
                   LEFT OUTER JOIN sys.sysprocesses p ON ( s.session_id = p.spid )
       ) t
WHERE   t.Command IN ( 'SELECT', 'UPDATE', 'DELETE' )

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读