解决Sql Server锁表的解锁方式 您所在的位置:网站首页 如果网站被锁了怎么办 解决Sql Server锁表的解锁方式

解决Sql Server锁表的解锁方式

2024-07-12 16:09| 来源: 网络整理| 查看: 265

查看锁表的id select spId from master…SysProcesses where db_Name(dbID) = ‘数据库名称’ and spId @@SpId and dbID 0

接触锁表方式 declare @spid int Set @spid = 57 --锁表进程 declare @sql varchar(1000) set @sql='kill '+cast(@spid as varchar) exec(@sql)

操作SQLServer数据库时,遇到这样的问题:已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)

经过查找材料了解为资源抢占,照成死锁,杀死进程就OK了,具体操作如下:

select spId from master…SysProcesses where db_Name(dbID) = ‘数据库名称’ and spId @@SpId and dbID 0 上面语句是获取进程ID,下面就是根据ID杀死相应进程 exec ('Kill '+spId(进程ID))

转载 https://blog.csdn.net/mh942408056/article/details/41114843

select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type=‘OBJECT’

select spId from master…SysProcesses where db_Name(dbID) = ‘qpaccountsdb’ and spId @@SpId and dbID 0

======================================= –查询数据库中所有表名及行数 --带架构名 SELECT s.name,a.name, b.rows FROM sys.tables AS a INNER JOIN sysindexes AS b ON a.object_id = b.id LEFT JOIN sys.schemas as s on a.schema_id = s.schema_id WHERE (a.type = ‘u’) AND (b.indid IN (0, 1)) ORDER BY b.rows DESC

==============================

第一步:查询死锁语句

1: 条件是 blocked 0

select dbid,* from sys.sysprocesses where 1=1 and spid >50 and blocked 0 –and spid= 62

查询结果如下图所示: 在这里插入图片描述 以上查询得出:

受影响的数据库ID 是 5; 受到阻塞的会话有1301、1306、869、109; 阻塞会话是961; 第二步:查询发生阻塞或死锁的当前数据库

1:通过第一步查询,知道数据库ID 为 DBID=5。

2:sp_helpdb 或 Select name,dbid from master.sys.sysdatabases 查询数据库名称 在这里插入图片描述 第三步:查询发生阻塞或死锁的SQL语句

输出死锁的执行的语句: dbcc inputbuffer(961)

语句如下:

select o.tp_Login,o.tp_Title, CONVERT(varchar(10),a.TimeCreated,120) as accessingdate,count(*) as docnum, ‘sps’ as type from UserData u,AllDocs a, userinfo o ,webs w where a.ListId = u.tp_ListId and a.Id = u.tp_docID and w.Id = a.WebId and w.SiteId = a.SiteId and w.SiteId = o.tp_SiteID and…以后省去

第四步:杀死锁

kill 961

之后再从第一步进行查询,看是否还存在死锁;

从第二步、第三步,查询出了出问题的锁死数据库及SQL语句,便于分析彻底解决死锁问题。 以下是sysprocesses 表中保存关于运行在 Microsoft® SQL Server™ 上的进程的信息。这些进程可以是客户端进程或系统进程。sysprocesses 只存储在master 数据库中。

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 原文链接:https://blog.csdn.net/snowfoxmonitor/article/details/7182948



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有