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 ...
随机推荐
- pci设备驱动相关
pci 设备注册及查找: https://www.cnblogs.com/image-eye/archive/2012/02/15/2352912.html PFN https://nieyong.g ...
- 七、Java多人博客系统-2.0版本-docker部署
docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...
- Django------多表操作
一. 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的 ...
- 记录一次有意思的XSS过滤绕过
我的朋友赵一天今晚给我发了一个站,跟我说他xss绕不过去,让我试试.我正好无事,就帮她看看咯. 通过赵一天发我的站点,说实话,我自己学到了很多东西,感谢大佬的教诲.今天分享出来: 站点:xxx.com ...
- (转)Java8内存模型—永久代(PermGen)和元空间(Metaspace)
背景:介绍java8中永久代到元空间的转变. Java8内存模型—永久代(PermGen)和元空间(Metaspace) 一.JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法 ...
- 关于微信登录授权获取unionid的方法
前言:微信登录授权是目前普遍存在于小程序的,还有一种静默授权方式是微信提供的但是不推荐使用,由于不同设备登录openid是不同的那么我们应该怎样拿到一个唯一的ID呢,下面做分享 wxml代码 < ...
- 树状数组BIT
模板1 #include<iostream> #include<cstdio> using namespace std; int n, m, c[500010]; inline ...
- 【转】Reflector、reflexil、De4Dot、IL相关操作指令合集
PS:CTRL+F 输入你需要的内容,可以快速查找页面上的内容. 名称 说明 Add 将两个值相加并将结果推送到计算堆栈上. Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上. ...
- CDH5.16.1启动报错:Invalid value set for db.setupType, the valid values are EMBEDDED or EXTERNAL
1 自己的配置文件已经添加了配置,但是还是报错,由于是自建数据库 com.cloudera.cmf.db.setupType=EXTERNAL 2,索性注释掉这个参数,启动就ok了
- Jenkins--发送邮件配置
使用Jenkins可以进行构建,并可以发送邮件.今天我们来讲一下邮件的配置. 首先:下载安装插件: 进入[Jenkins-系统管理-插件管理-可选插件],搜索“Email Extension”进行安装 ...