云数据库SQL Server版如何查看当前运行的SQL语句

云数据库SQL Server版如何查看当前运行的SQL语句

更新时间:2020-03-25 17:07:25

概述

云数据库SQL Server版如何查看当前运行的SQL语句,类似于MySQL的show processlist语句。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  1. 登录SQL Server实例,请参见连接SQL Server实例
  2. 执行以下SQL脚本,查看当前运行的SQL语句。
    SELECT  [Spid] = session_id ,
          [Database] = DB_NAME(sp.dbid) ,
          [User] = nt_username ,
          [Status] = er.status ,
          [Wait] = wait_type ,
          [Individual Query] = SUBSTRING(qt.text,
                                             er.statement_start_offset / 2,
                                             ( CASE WHEN er.statement_end_offset = -1
                                                    THEN LEN(CONVERT(NVARCHAR(MAX), qt.text))
                                                         * 2
                                                    ELSE er.statement_end_offset
                                               END - er.statement_start_offset )
                                             / 2) ,
              [Parent Query] = qt.text ,
              Program = program_name ,
              hostname ,
              nt_domain ,
              start_time
      FROM    sys.dm_exec_requests er
              INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
              CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt
      WHERE   session_id > 50
              AND session_id NOT IN ( @@SPID )

适用于

  • 云数据库SQL Server版