SqlServe查看锁表和解锁 您所在的位置:网站首页 sql加锁语句 SqlServe查看锁表和解锁

SqlServe查看锁表和解锁

2023-03-13 12:48| 来源: 网络整理| 查看: 265

SQL SERVER 数据库中经常会出现锁表得情况 出现该情况得原因一般是: 1,字段不加索引:在执行事务的时候,如果表中没有索引,会执行全表扫描,如果这时候有其他的事务过来,就会发生锁表! 2,事务处理时间长:事务处理时间较长,当越来越多事务堆积的时候,会发生锁表! 3,关联操作太多:涉及到很多张表的修改等,在并发量大的时候,会造成大量表数据被锁! 解决该问题的方法有:

通过相关的sql语句可以查出是否被锁定,和被锁定的数据为加锁进行时间限定,防止无限死锁加索引,避免全表扫描尽量顺序操作数据根据引擎选择合理的锁粒度事务中的处理时间尽量短

出现锁表后就需要相应的解锁操作

1.查询锁表的进程; select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type=‘OBJECT’

2.解锁语句,需要将锁表进程 @spid换成查询出来的锁表进程; declare @spid int Set @spid = 65 --锁表进程 declare @sql varchar(1000) set @sql='kill '+cast(@spid as varchar) exec(@sql) 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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