SqlServer执行SQL被block的操作

本文提供了几个实用的SQL Server故障排查技巧,包括如何查询被阻塞的SQL进程、使用sp_who2查看当前客户端信息、执行脏读操作、查询特定SPID的信息以及获取表锁详情。这些技巧对于DBA和SQL Server开发者来说非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有用的帖子链接:

http://www.dotblogs.com.tw/ricochen/archive/2012/07/10/73316.aspx

http://technet.microsoft.com/en-us/library/ms175519(v=sql.105).aspx


有用的查询或指令:

1.被block的sql
SELECT SPID=p.spid,
DBName = convert(CHAR(20),d.name),
ProgramName = program_name,
LoginName = convert(CHAR(20),l.name),
HostName = convert(CHAR(20),hostname),
Status = p.status,
BlockedBy = p.blocked,
LoginTime = login_time,
QUERY = CAST(TEXT AS VARCHAR(MAX))
FROM MASTER.dbo.sysprocesses p
INNER JOIN MASTER.dbo.sysdatabases d
ON p.dbid = d.dbid
INNER JOIN MASTER.dbo.syslogins l
ON p.sid = l.sid
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
WHERE p.blocked = 0
AND EXISTS (SELECT 1
FROM MASTER..sysprocesses p1
WHERE p1.blocked = p.spid)


2.查找当前客户端和执行sql?
sp_who2

3.脏读:
select *from Table_1(nolock)

4.spid的信息查询
DBCC INPUTBUFFER(62)

5.表锁信息
sp_lock
select * from sys.objects where object_id='802101898'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值