SQL Server锁处理_sql 锁死

SQL Server锁处理_sql 锁死

编码文章call10242025-03-03 10:34:1240A+A-

问题:出现查询超时的情况

解决:查查是不是有锁了

查询锁:

select request_session_id spid,

OBJECT_NAME(resource_associated_entity_id) tableName,request_type ,request_owner_type,request_mode,request_status

from sys.dm_tran_locks where resource_type='OBJECT'

看看有没有IX类型的锁

模拟锁:

BEGIN TRANSACTION;

UPDATE t_data SET test_fiels = '' WHERE id = 1;

WAITFOR DELAY '00:01:050'; -- 等待1分钟

COMMIT;

测试下是否有锁:运行select * from t_data

删锁:kill <锁ID>

查进程:sp_who2 <锁ID>

忽略锁查询:

select * from t_data WITH (NOLOCK)

。。。。。。t_data INNER JOIN WITH (NOLOCK)

如果是视图,可以修改视图定义,表后面加上nolock,不需要代码里改sql

*nolock 只能和 select 一起用,不能和 update,delete,insert

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4