额,中招了,错误:1222:已超过了锁请求超时时段

ykdrj 2012-07-05 11:24:38
昨天晚上此表放着创建索引,今天查询不出数据,执行select * from tb 一直在查询中,没结果

准备删除此表,出现了1222:已超过了锁请求超时时段


上网查都是说创建一个Sp_KillAllProcessInDB 存储过程杀掉进程

试过了,还是不能查询此表或者删除此表,,,怎么办?

...全文
2207 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Alan-Build 2013-08-11
  • 打赏
  • 举报
回复
重启一下MSSQLSERVER服务即可,我的情况是这样的。
發糞塗牆 2012-07-05
  • 打赏
  • 举报
回复
应该是你的表体积很大,处理的时候费事,因为几乎所有数据库操作都需要加或多或少的锁,所以会超时。首先你可以使用select * from sys.sysprocesses where blocked<>0查查有哪些进程阻塞了。然后拿SPID,运行DBCC INPUTBUFFER(SPID)来检查是什么语句造成,找到你的那个删表进程之后,kill spid,杀掉。但是注意,有些操作由于阻塞时间过长,所以就算你kill掉,也要回滚同等的时间,这个你要注意,当出现这个情况时,可能要么重启服务,要么就等了。
当你需要再次删表的时候,建议先truncate table ,然后再drop,这样速度快日至少。提醒要注意做好备份工作,免得发生意外,比如删错表名类似的表。
guguda2008 2012-07-05
  • 打赏
  • 举报
回复
把SELECT的那个进程关掉先,再删,还有问题看是被哪个进程阻塞的。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧