sqlserver(查看被锁进程)
- -- ###### 查看被锁进程 ######
- select 标志,
- 进程ID=spid,线程ID=kpid,块进程ID=blocked,数据库ID=dbid,
- 数据库名=db_name(dbid),用户ID=uid,用户名=loginame,累计CPU时间=cpu,
- 登陆时间=login_time,打开事务数=open_tran, 进程状态=status,
- 工作站名=hostname,应用程序名=program_name,工作站进程ID=hostprocess,
- 域名=nt_domain,网卡地址=net_address
- from(
- select 标志='死锁的进程',
- spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran,
- status,hostname,program_name,hostprocess,nt_domain,net_address,
- s1
- from master..sysprocesses a join (
- select blocked from master..sysprocesses group by blocked
- )b
- union all
- select '|_牺牲品_>',
- spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran,
- status,hostname,program_name,hostprocess,nt_domain,net_address,
- s1
- )a order by s1,s2
- -- 查询锁对象
- , ) AS spid,
- ), DB_NAME (resource_database_id)) AS db_name,
- CASE
- WHEN resource_database_id = DB_ID () AND resource_type = 'OBJECT'
- THEN
- ), OBJECT_NAME (resource_associated_entity_id))
- ELSE
- ), resource_associated_entity_id)
- END
- AS object,
- ), resource_type) AS resource_type,
- ), request_type) AS request_type,
- ), request_mode) AS mode,
- ), request_status) AS status
- FROM sys.dm_tran_locks
- WHERE resource_type = 'OBJECT'
- , DESC
- exec sp_lock
- EXEC sp_who active
- SELECT @@LOCK_TIMEOUT
- -- ###### 查first()记录 ######
- -- 方法一
- SELECT *
- FROM infu_master i
- WHERE i.infu_master_id =
- ( im.infu_master_id
- FROM infu_master im
- WHERE im.infu_status IN ('R', 'I', 'S')
- AND im.pati_id = i.pati_id
- ORDER BY im.infu_master_id ASC)
- -- 方法二
- SELECT *
- FROM infu_master i
- WHERE i.infu_master_id IN (SELECT min (im.infu_master_id) AS infu_master_id
- FROM infu_master im
- WHERE im.infu_status IN ('R', 'I', 'S')
- GROUP BY im.pati_id)
- -- 方法三
- SELECT *
- FROM (SELECT im.*,
- ROW_NUMBER ()
- OVER (PARTITION BY im.pati_id ORDER BY im.infu_master_id)
- RN
- FROM infu_master im
- WHERE im.infu_status IN ('R', 'I', 'S')) t
- -- ###### 查引起死锁的操作 ######
- USE master
- go
- DECLARE @spid INT
- --查询出死锁的SPID
- SELECT @spid = blocked
- FROM (SELECT *
- FROM sysprocesses
- ) a
- WHERE NOT EXISTS
- (SELECT *
- FROM (SELECT *
- FROM sysprocesses
- ) b
- WHERE a.blocked = spid)
- --输出引起死锁的操作
- DBCC INPUTBUFFER (@spid)
- --exec sp_who2
- use master
- go
- declare @spid int,@bl int
- DECLARE s_cur CURSOR FOR
- ,blocked
- ) a
- ) b
- where a.blocked=spid)
- OPEN s_cur
- FETCH NEXT FROM s_cur INTO @spid,@bl
- begin
- select '引起数据库死锁的是:
- )) + '进程号,其执行的SQL语法如下'
- else
- ))+ '被' + '
- 进程号SPID:)) +'阻塞,其当前进程执行的SQL语法如下'
- DBCC INPUTBUFFER (@bl )
- FETCH NEXT FROM s_cur INTO @spid,@bl
- end
- CLOSE s_cur
- DEALLOCATE s_cur
- -- ###### 查事务隔离级别 ######
- SELECT session_id,
- (CASE transaction_isolation_level
- THEN 'ReadUncomitted'
- THEN 'ReadCommitted'
- THEN 'Repeatable'
- THEN 'Serializable'
- THEN 'Snapshot'
- END)
- [transaction_isolation_level]
- FROM sys.dm_exec_sessions
- WHERE session_id = @@SPID;
- DBCC USEROPTIONS
- select * FROM sys.dm_tran_locks;
- select * from sys.partitions;
- order by [type];
- select * from sys.sysdatabases
- select * from sys.databases;
- select * from sys.schemas;
- -- 查被锁表并杀掉死锁进程
- SELECT request_session_id spid,
- OBJECT_NAME (resource_associated_entity_id) tableName
- FROM sys.dm_tran_locks
- WHERE resource_type = 'OBJECT';
- kill #{pid};
sqlserver(查看被锁进程)的更多相关文章
- SqlServer 查看死锁的进程
版权声明:本文为 走错路的程序员 原创文章,欢迎转载. https://blog.csdn.net/phker/article/details/78612974搞sqlsever 好多年, 从来没锁过 ...
- sqlserver查看被锁表、解锁
查看别锁表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.d ...
- SqlServer 查看被锁的表和解除被锁的表
查看被锁的表 1 2 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName ...
- SqlServer 查看事务锁及执行语句
一.查看当前锁定的事务 ,) ,用户机器名称,) ,是否被锁住),blocked) ,数据库名称,),cmd 命令,waittype as 等待类型 ,last_batch 最后批处理时间,open_ ...
- Oracle查看有锁进程,删除锁
查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao ...
- SqlServer 查看数据库锁,解除锁,此种情况一般常见都是由于事务所造成
检查数据库锁 SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id)tableNameFROM sys.dm ...
- 知方可补不足~sqlserver中使用sp_who查看sql的进程
回到目录 在SQLSERVER中每个会话,即每个查询分析器窗口都会产生一个SQL进程,对于那些持续时间短的进程,它们转瞬即失,而对于持续时间比较长的,我们需要希望查看它的运行状态,就可以借助SQL提供 ...
- SqlServer查看锁表与解锁
某些情况下,sqlserver的表会被锁住,比如某个会话窗口有数据一直没提交,窗口又没关闭,这时表就会被锁住 其他任何连接查询表数据时都不会返回 这时需要手工杀掉产生死锁的会话ID,才能恢复正常 查看 ...
- mysql查看被锁住的表,正在进行的进程,已经杀掉进程的方法
mysql查看被锁的进程 //查看所有进程show processlist; //查询是否锁表show OPEN TABLES where In_use > 0; //查看被锁住的 SELECT ...
随机推荐
- Oracle物化视图的创建及使用
oracle物化视图 一.oracle物化视图基本概念 物化视图首先需要创建物化视图日志, oracle依据用户创建的物化视图日志来创建物化视图日志表, 物化视图日志表的名称为mlog$_后面跟 ...
- iOS发布证书申请
一. 准备工作1.1.准备打包服务器 打包服务器搭建详见http://bbs.justep.com/thread-67724-1-1.html 或 http://www.cnblogs.com/Wo ...
- CentOS_7升级系统内核
最近,在虚拟机中安装docker成功之后,尝试运行docker run hello-world时出现以下错误: $ sudo docker run hello-world Unable to find ...
- H5的表格
表格标签<table> 绘制表格的标签:<table>标签 表格标题:<caption>标签 表格宽度与高度:width和height属性 表格边框色:border ...
- 转:ls用法详解
在Linux中显示文件大小的时候,通常的做法是使用“ls -l”,显示的大小是文件的字节大小. 但是,如果文件比较大的话,显示起来不是特别易读,这个时候,可以使用“ls -lh”,就可以使用比较接近文 ...
- Luogu5289 十二省联考2019皮配(动态规划)
将选择导师看成先选阵营再选派系,这样有显然的O(nm2)暴力,即按城市排序后,设f[i][j][k]为前i个学校中第一个阵营有j人第一个派系有k人的方案数,暴力背包. 对于k=0,可以发现选阵营和选派 ...
- 【洛谷P2822 组合数问题】
题目连接 #include<iostream> #include<cstring> #include<cstdio> #include<cctype> ...
- 越光后端开发——ygapi(2.新建Model)
1.新建Model 1.users数据 1.在apps/users/models.py中: from datetime import datetime from django.db import mo ...
- JS学习笔记Day13
一.cookie (一)什么是cookie: 1.就是会话跟踪技术,存放在客户端浏览器中的一段文本信息 2.会话:从浏览网站开始到结束的这个过程称为一次会话,浏览器关闭,表示会话结束 3.会话跟踪技术 ...
- 记一次504 Gateway Time-out
使用curl请求是超时,查了下资料原来是端口被占用,造成了死锁,记录下 首先要知道为什么会出现死锁? 在我们访问页面的时候这个端口进程就已经被使用,当我们再在页面中curl请求其他页面因为没有其他的端 ...