sybase进程管理指南

下图为数据库客户端–进程显示窗口,如何读懂这些信息,可从以下几个方面入手。
在这里插入图片描述

一、进程ID图标说明

ID图标显示绿色,进程正常执行,反之,异常。

二、进程状态说明

alarm sleep 等待警报唤醒进程(用户执行了 waitfor delay 命令)

background 由 Adaptive Server 而不是用户进程运行的进程,例如阈值进程

infected 服务器已检测到严重的错误情况;极其少见

latch sleep 等待获取闩锁

lock sleep 等待获取锁

PLC sleep 等待访问用户日志高速缓存

recv sleep 等待网络读取

remote i/o 使用远程服务器执行 I/O

runnable 在可运行的进程队列中

running 当前在一个服务器引擎上运行

send sleep 等待网络发送

sleeping 等待磁盘 I/O 或某些其它资源(通常表示正在运行但执行大量磁盘 I/O 的进程)

stopped 已停止的进程

sync sleep 等待系列中另一进程的同步消息

三、获取进程相关信息

执行下述代码,可查看进程的编号、当前使用的数据库、当前执行命令、登录名、IP等信息

SELECT TOP 40* FROM master.sysprocesses WHERE spid=?


列名 数据类型 描述

spid smallint SQL Server 进程 ID。

kpid smallint Microsoft Windows NT 4.0® 线程 ID。

blocked smallint 分块进程的进程 ID (spid)。

waittype binary(2) 保留。

waittime int 当前等待时间(以毫秒为单位)。当进程不处于等待时,为 0。

lastwaittype nchar(32) 表示上次或当前等待类型名称的字符串。

waitresource nchar(32) 锁资源的文本化表示法。

dbid smallint 当前正由进程使用的数据库 ID。

uid smallint 执行命令的用户 ID。

cpu int 进程的累计 CPU 时间。无论 SET STATISTICS TIME ON 选项是 ON 还是 OFF,都为所有进程更新该条目。

physical_io int 进程的累计磁盘读取和写入。

memusage int 当前分配给该进程的过程高速缓存中的页数。一个负数,表示进程正在释放由另一个进程分配的内存。

login_time datetime 客户端进程登录到服务器的时间。对于系统进程,是存储 SQL Server 启动发生的时间。

last_batch datetime 客户端进程上次执行远程存储过程调用或 EXECUTE 语句的时间。对于系统进程,是存储 SQL Server 启动发生的时间。

ecid smallint 用于唯一标识代表单个进程进行操作的子线程的执行上下文 ID。

open_tran smallint 进程的打开事务数。

status nchar(30) 进程 ID 状态(如运行、休眠等)。

sid binary(85) 用户的全局唯一标识符 (GUID)。

hostname nchar(128) 工作站的名称。

program_name nchar(128) 应用程序的名称。

hostprocess nchar(8) 工作站进程 ID 号。

cmd nchar(16) 当前正在执行的命令。

nt_domain nchar(128) 客户端的 Windows NT 4.0 域(如果使用 Windows 身份验证)或信任连接的 Windows NT 4.0 域。

nt_username nchar(128) 进程的 Windows NT 4.0用户名(如果使用 Windows 身份验证)或信任连接的 Windows NT 4.0 用户名。

net_address nchar(12) 指派给每个用户工作站上的网络接口卡唯一标识符。当用户登录时,该标识符插入 net_address 列。

net_library nchar(12) 用于存储客户端网络库的列。每个客户端进程都在网络连接上进入。网络连接有一个与这些进程关联的网络库,该网络库使得这些进程可以建立连接。有关更多信息,请参见客户端和服务器 Net-Library。

loginame nchar(128) 登录名。

四、进程阻塞,如何处理

1、当前所有进程执行情况、 获取关于被阻碍进程的信息

sp_who

sp_who的显示结果中:

status列显示“lock sleep”。

blk列显示保持该锁或这些锁的进程标识,即被谁锁定了。

loginame列显示登录操作员。结合相应的操作员信息表,便可知道操作员是谁。

locktype列显示加锁的类型和封锁的粒度,有些锁的后缀还带有blk表明锁的状态。前缀表明锁的类型:Sh—共享锁,Ex—排它锁或更新锁,中间表明锁死在表上(”table”或’intent’)还是在页上(page). 后缀“blk”表明该进程正在障碍另一个需要请求锁的进程。

一旦正在障碍的进程一结束,其他进程就向前移动。“demand”后缀表明当前共享锁一释放, 该进程就申请互斥锁。

table_id列显示表的id号,结合sysobjects即可查出被封锁的表名

备注:有时候死锁有可能是数据库中某些进程被未完成的事务阻塞资源而导致的。可以用select * from master.syslogshold查看未完成的任务。

用sp_who获取关于被阻碍进程的信息。系统过程sp_who给出系统进程的报告。如果用户的命令正被另一进程保持的锁阻碍。



2、当前进程执行内容

dbcc traceon(3604)

dbcc sqltext(spid)–进程号

3、杀进程

kill spid

4、看回滚进度

KILL spid WITH STATUSONLY


解决思路:

1、过程与过程、抽数与过程的调度时间冲突,杀掉相关进程,调整调度时间

2、日志空间不足导致进程阻塞,杀掉并回滚进程,释放空间(考虑是否增加日志空间)

3、锁资源不足导致进程阻塞,分析锁资源情况,杀掉并回滚进程,释放锁资源(考虑是否增加锁资源)







免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空