mysql sp who_sp_who使用

[SQL Server]  sp_who, sp_who2和sp_who3

sp_who可以返回如下信息: (可选参数LoginName, 或active代表活动会话数)

Spid         (系统进程ID)

status      (进程状态)

loginame  (用户登录名)

hostname(用户主机名)

blk           (阻塞进程的SPID)

dbname   (进程正在使用的数据库名)

Cmd        (当前正在执行的命令类型)

sp_who2除了显示上面sp_who的输出信息外,还显示下面的信息:  (可选参数LoginName, 或active代表活动会话数)

CPUTime           (进程占用的总CPU时间)

DiskIO              (进程对磁盘读的总次数)

LastBatch         (客户最后一次调用存储过程或者执行查询的时间)

ProgramName  (用来初始化连接的应用程序名称,或者主机名)

例子

经常会发现有一些 status = ‘suspended’的进程 会占用很高的cpu使用率(可能高达100%)

这时需要去及时处理,可以首先查询得到status = ‘suspended’的进程的spid 之后kill观察cpu使用情况

USEmasterGO

SELECT * FROM sys.[sysprocesses] WHERE [spid]>50 and cpu > 1000 and status = 'suspended'--AND DB_NAME([dbid])='gposdb'

SELECT COUNT(*) FROM [sys].[dm_exec_sessions] WHERE [session_id]>50

查看spid = 120 的详细信息,并结束该进程

sp_who2  120

kill 120

此外, sp_who3是某牛人自定义的存储过程,(可选参数spid),显示“非系统会话,且是活动的会话”的详细情况。

CREATE PROCEDUREsp_who3

(@SessionID int = NULL)AS

BEGIN

SELECTSPID=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_schemeFROMsys.dm_exec_requests erOUTERAPPLY sys.dm_exec_sql_text(er.sql_handle) stLEFT JOINsys.dm_exec_sessions sesON ses.session_id =er.session_idLEFT JOINsys.dm_exec_connections conON con.session_id =ses.session_idWHERE er.session_id > 50

AND @SessionID IS NULL OR er.session_id = @SessionID

ORDER BYer.blocking_session_idDESC,er.session_idEND

go

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值