[SQL Server] sp_who, sp_who2和sp_who3
来源:互联网 发布:艾瑞网怎么查数据 编辑:程序博客网 时间:2024/05/01 19:52
[SQL Server] sp_who, sp_who2和sp_who3
Spid (系统进程ID)
status (进程状态)
loginame (用户登录名)
hostname(用户主机名)
blk (阻塞进程的SPID)
dbname (进程正在使用的数据库名)
Cmd (当前正在执行的命令类型)
Transact-SQL 语法约定
sp_who [ [ @loginame = ] 'login' | session ID | 'ACTIVE' ]
0(成功)或 1(失败)
sp_who 返回包含以下信息的结果集。
列
数据类型
说明
spid
smallint
会话 ID。
ecid
smallint
与特定会话 ID 相关联的给定线程的执行上下文 ID。
ECID = {0, 1, 2, 3, ...n},其中 0 始终表示主或父线程,并且 {1, 2, 3, ...n} 表示子线程。
status
nchar(30)
进程状态。 可能的值有:
dormant. SQL Server 正在重置会话。
running。 会话正在运行一个或多个批。 多个活动的结果集 (MARS) 启用后,会话可以运行多个批。有关详细信息,请参阅使用多个活动的结果集 (MARS)。
background。会话正在运行一个后台任务,例如死锁检测。
rollback。 会话具有正在处理的事务回滚。
pending。 会话正在等待工作线程变为可用。
runnable。 会话的任务在等待获取时间量程时位于计划程序的可运行队列中。
spinloop。 会话的任务正在等待调节锁变为可用。
suspended。 会话正在等待事件(如 I/O)完成。
loginame
nchar(128)
与特定进程相关联的登录名。
hostname
nchar(128)
每个进程的主机或计算机名。
blk
char(5)
如果存在阻塞进程,则是该阻塞进程的会话 ID。 否则该列为零。
当与指定会话 ID 相关联的事务受到孤立分布式事务的阻塞时,该列将对阻塞孤立事务返回“-2”。
dbname
nchar(128)
进程使用的数据库。
cmd
nchar(16)
为该进程执行的数据库引擎命令(Transact-SQL 语句、数据库引擎进程等等)。
request_id
int
特定会话中运行的请求的 ID。
如果是并行处理,则会为特定的会话 ID 创建子线程。 主线程则以 spid = <xxx> 和 ecid =0 表示。其他子线程具有相同的 spid = <xxx>,但ecid > 0。
阻塞进程(可能含有排他锁)是控制其他进程所需要的资源的进程。
所有孤立的分布式事务的会话 ID 都被赋予值“-2”。 孤立的分布式事务是不与任何会话 ID 关联的分布式事务。 有关详细信息,请参阅使用标记的事务一致地恢复相关的数据库的事务(完全恢复模式)。
查询 sys.dm_exec_sessions 的 is_user_process 列以分隔系统进程和用户进程。
要求对服务器具有 VIEW SERVER STATE 权限才能查看 SQL Server 实例上所有正在执行的会话。否则,用户只能查看当前会话。
A.列出全部当前进程
以下示例使用没有参数的 sp_who 来报告所有当前用户。
USE master;GOEXEC sp_who;GO
B.列出特定用户的进程
以下示例显示如何通过登录名查看有关单个当前用户的信息。
USE master;GOEXEC sp_who 'janetl';GO
C.显示所有活动进程
USE master;GOEXEC sp_who 'active';GO
D.显示会话 ID 标识的特定进程
USE master;GOEXEC sp_who '10' --specifies the process_id;GO
sp_who2除了显示上面sp_who的输出信息外,还显示下面的信息: (可选参数LoginName, 或active代表活动会话数)
CPUTime (进程占用的总CPU时间)
DiskIO (进程对磁盘读的总次数)
LastBatch (客户最后一次调用存储过程或者执行查询的时间)
ProgramName (用来初始化连接的应用程序名称,或者主机名)
sp_who3是某牛人自定义的存储过程,(可选参数spid),显示“非系统会话,且是活动的会话”的详细情况。
CREATEPROCEDURE sp_who3
( @SessionIDint=NULL)
AS
BEGIN
SELECT
SPID = er.session_id
,Status = ses.status
,[Login] = ses.login_name
,Host = ses.host_name
,BlkBy = er.blocking_session_id
,DBName =DB_Name(er.database_id)
,CommandType = er.command
,SQLStatement = st.text
,ObjectName =OBJECT_NAME(st.objectid)
,ElapsedMS = er.total_elapsed_time
,CPUTime = er.cpu_time
,IOReads = er.logical_reads+ er.reads
,IOWrites = er.writes
,LastWaitType = er.last_wait_type
,StartTime = er.start_time
,Protocol = con.net_transport
,ConnectionWrites = con.num_writes
,ConnectionReads = con.num_reads
,ClientAddress = con.client_net_address
,Authentication = con.auth_scheme
FROMsys.dm_exec_requests er
OUTERAPPLY sys.dm_exec_sql_text(er.sql_handle) st
LEFTJOINsys.dm_exec_sessions ses
ON ses.session_id= er.session_id
LEFTJOINsys.dm_exec_connections con
ON con.session_id= ses.session_id
WHERE er.session_id> 50
AND @SessionIDISNULLOR er.session_id= @SessionID
ORDERBY
er.blocking_session_idDESC
,er.session_id
END
go
http://blog.csdn.net/xiaoxu0123/article/details/5757640- [SQL Server] sp_who, sp_who2和sp_who3
- [SQL Server] sp_who, sp_who2和sp_who3
- [SQL Server] sp_who, sp_who2和sp_who3
- [SQL Server] sp_who, sp_who2和sp_who3
- [SQL Server] sp_who, sp_who2和sp_who3
- [SQL Server] sp_who, sp_who2和sp_who3
- sp_who, sp_who2和sp_who3
- Transact-SQL参考:sp_who、sp_who2和sp_who3
- SQLSERVER 中sp_who, sp_who2和sp_who3
- [SQL SERVER] 统计SQL用户连接情况(sp_who)
- Transact-SQL参考:sp_who
- sp_who查看sql的进程
- sp_who
- sp_who2 status
- SQL SERVER和SYBASE
- SQL Server 中的''和' '
- mysql和sql server
- sp_block查看数据库进程状态(是否阻塞,执行SQL等),可替代sp_who
- Oracle动态SQL
- 打印图形
- perl 子函数
- Android接口定义语言---AIDL(四)
- 配置Tomcat
- [SQL Server] sp_who, sp_who2和sp_who3
- 事务隔离级别
- ios 应用内支付,沙盒测试时出现“此Apple ID尚未在iTunes Store使用过。。。”
- 前后台参数传递(&,%处理)
- struts配置文件
- ios学习笔记(转)
- Qt获取多边形(QGraphicsPolygonItem)或Qt图形组件与直线(QLineF)的交点
- 如何删除arcsde服务
- 内核风格缩进工具indent