sys.sysprocesses视图的使用小结

Sys.SysProcesses 系统表是一个很重要的系统视图,主要用来定位与解决Sql Server的阻塞和死锁
包含正在 SQL Server 实例上运行的进程的相关信息。这些进程可以是客户端进程或系统进程。
视图中主要的字段:
1. Spid:Sql Servr 会话ID
2. Kpid:Windows 线程ID
3. Blocked:正在阻塞求情的会话 ID。如果此列为 Null,则标识请求未被阻塞
4. Waittype:当前连接的等待资源编号,标示是否等待资源,0 或 Null表示不需要等待任何资源
5. Waittime:当前等待时间,单位为毫秒,0 表示没有等待
6. DBID:当前正由进程使用的数据库ID
7. UID:执行命令的用户ID
8. Login_time:客户端进程登录到服务器的时间。
9. Last_batch:上次执行存储过程或Execute语句的时间。对于系统进程,将存储Sql Server 的启动时间
10.Open_tran:进程的打开事务个数。如果有嵌套事务,就会大于1
11.Status:进程ID 状态,dormant = 正在重置回话 ; running = 回话正在运行一个或多个批处理 ; background = 回话正在运行一个后台任务 ; rollback = 会话正在处理事务回滚 ; pending = 回话正在等待工作现成变为可用 ; runnable = 会话中的任务在等待获取 Scheduler 来运行的可执行队列中 ; spinloop = 会话中的任务正在等待自旋锁变为可用 ; suspended = 会话正在等待事件完成
12.Hostname:建立链接的客户端工作站的名称
13.Program_name:应用程序的名称,就是 连接字符串中配的 Application Name
14.Hostprocess:建立连接的应用程序在客户端工作站里的进程ID号
15.Cmd:当前正在执行的命令
16.Loginame:登录名

应用实例:

1. 检查数据库是否发生阻塞

先查找哪个链接的 blocked 字段不为0。如 SPID53的blocked 字段不为0,而是 52。SPID 52 的 blocked 为0,就可以得出结论:此时有阻塞发生,53 被 52 阻塞住了。如果你发现一个连接的 blocked 字段的值等于它自己,那说明这个连接正在做磁盘读写,它要等自己的 I/O 做完。

2. 查找链接在那个数据库上

检查 dbid 即可。得到 dbid,可以运行以下查询得到数据库的名字:
Select name,dbid from master.sys.sysdatabases

通过下面的语句可以查看当前库中有哪些表是发生死锁的:
SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id)tableName
FROM sys.dm_tran_locks
WHERE resource_type=‘OBJECT ‘

时间: 2024-08-24 11:53:47

sys.sysprocesses视图的使用小结的相关文章

master.sys.sysprocesses相关内容

sysprocesses 表中保存关于运行在 Microsoft® SQL Server™ 上的进程的信息.这些进程可以是客户端进程或系统进程. sysprocesses 只存储在 master 数据库中,是一张视图. Select * From master.sys.sysprocesses 一.使用sysprocesses查询当前系统被阻塞的会话 字段Blocked<>0代表当前的SQL Server会话ID被锁定,锁定当前会话ID的SQL Server会话ID就是Blocked中的值.

数据库问题5-SYS.SYSPROCESSES使用和查找死锁

http://blog.sina.com.cn/s/blog_62c4727d0100jc5z.html (一)理論部份 sys.sysprocesses (Transact-SQL) http://technet.microsoft.com/zh-tw/library/ms179881.aspx 包含在 SQL Server 執行個體上執行之處理序的相關資訊.這些處理序可以是用戶端處理序或系統處理序.若要存取 sysprocesses,您必須在 master 資料庫內容中,或者,您必須使用 m

通过sys.sysprocesses查询线程来源

SELECT hostname,loginame,* FROM sys.sysprocesses; SELECT count(*),hostname FROM sys.sysprocesses where cmd='AWAITING COMMAND' group by hostname; SELECT count(*),hostname,loginame FROM sys.sysprocesses where cmd='AWAITING COMMAND' group by hostname,lo

select * from sys.sysprocesses

MSDN:包含正在 SQL Server 实例上运行的进程的相关信息.这些进程可以是客户端进程或系统进程. 视图中主要的字段: 1. Spid:Sql Servr 会话ID 2. Kpid:Windows 线程ID 3. Blocked:正在阻塞求情的会话 ID.如果此列为 Null,则标识请求未被阻塞 4. Waittype:当前连接的等待资源编号,标示是否等待资源,0 或 Null表示不需要等待任何资源 5. Waittime:当前等待时间,单位为毫秒,0 表示没有等待 6. DBID:当前

理解和使用SQL Server中的并行

什么是并行? 我们从小就听说过"人多力量大"."人多好办事"等,其思想核心就是把一个任务分给许多人,这样每个人只需要做很少的事情就能完成整个任务.更重要的是,如果额外的人专门负责分配工作,那么任务的完成时间就可以大幅减少了. 数糖豆 设想你正面对一个装满各式各样糖豆的罐子,并且要求书有多少个.假设你能平均每秒数出五个,需要大于十分钟才能数完这个盒子里的3027个糖豆. 如果你有四个朋友帮助你去做这个任务.你就有了多种策略来安排这个数糖豆任务,那让我们模仿SQLSer

MSSQL的sysprocesses

包含正在 SQL Server 实例上运行的进程的相关信息. 这些进程可以是客户端进程或系统进程. 若要访问 sysprocesses,您必须位于 master 数据库上下文中, 或者必须使用由三部分构成的名称 master.dbo.sysprocesses 或者sys.sysprocesses. 作用:Sys.SysProcesses 系统表是一个很重要的系统视图,主要用来定位与解决Sql Server的阻塞和死锁: sysprocesses主数据库进程 列名 数据类型 说明 spid sma

oracle视图与索引

实验目的:    1.理解索引和位图索引的基本概念    2.掌握索引和位图索引的创建方法,并使用索引对查询过程产生的影响进行分析    3.理解视图的基本概念    4.掌握视图的创建方法,并对视图中数据查询与更新进行操作,明确其使用的注意事项. 实验步骤: 1.创建有特点的大数据表.为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的测试表.这个测试表的数据来源于SYS模式下的all_objects视图,其中包括本数据库实例中的全部对象的基本描述,具体包括对象的所有者.对象名称

SQL Server中sys.syslogin中updatedate字段的浅析

在系统视图sys.syslogins中,有createdate与updatedate两个字段,分别表示创建登录名与更新登录名的日期,如果你用updatedate的值来判断一个登录名的权限是否被修改过,那么你就要跳坑里了.当然sys.sysusers视图里面updatedate字段也不能作为某个user权限最后一次修改的依据,如下测试所示: USE [master] GO CREATE LOGIN [kerry] WITH PASSWORD=N'kerry123456', DEFAULT_DATA

延迟加载和插入视图

当我们需要为App中的每个View都添加一个header或者footer时,你会怎么做? 重复地复制粘贴可以解决这个问题,但未免太繁杂.可以试着使用<include />标签: 第一种方式,在<include />标签内指定width及height: main.xml <RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_wid