数据库经常阻塞,一个进程被自己阻塞

etuo8 2009-01-01 10:16:20
数据中经常出现一个进程被自己租塞例如: spid63(正在阻塞) spid63(阻塞者63)
双击这两个spid63 都是 sp_reset_connection;1 这个语句。

还有 例如spid53(正在阻塞) spid53(阻塞者53)
双击spid53(正在阻塞)
SELECT tb_card.c_customer,
tb_card.c_cardno,
tb_card.c_score,
tb_card.c_deposit,
tb_card.c_status,
tb_card.c_e_date
FROM tb_card (nolock)
WHERE ( tb_card.c_mid = '2008123100005767' )

双击spid53(阻塞者53)
SELECT tb_card.c_customer,
tb_card.c_cardno,
tb_card.c_score,
tb_card.c_deposit,
tb_card.c_status,
tb_card.c_e_date
FROM tb_card (nolock)
WHERE ( tb_card.c_mid = '2008123100029477' )

两个相同的语句或者来呢不同的select 怎么会阻塞呢?望高手解答谢谢!


...全文
694 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q315054403 2009-01-08
  • 打赏
  • 举报
回复
可能这是个小问题、小故障
但估计也需要请人上门全面检查吧
etuo8 2009-01-08
  • 打赏
  • 举报
回复
祈求最佳答案
lansz 2009-01-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dawugui 的回复:]
引用 2 楼 etuo8 的回复:
我把程序改一下测试看看,这个是什么原理呢?
至于第一条sp_reset_connection;1 阻塞是怎么回事呢?
谢谢老兄

如果只是查询,且你加了条件的查询只查询一条记录,没有必要加锁.
[/Quote]

晕,加nolock不是加锁,是允许脏读好不好,是为了查询不被update这些语句阻塞
rucypli 2009-01-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
把(nolock) 去掉.
[/Quote]


为什么??
dawugui 2009-01-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 etuo8 的回复:]
我把程序改一下测试看看,这个是什么原理呢?
至于第一条sp_reset_connection;1 阻塞是怎么回事呢?
谢谢老兄
[/Quote]
如果只是查询,且你加了条件的查询只查询一条记录,没有必要加锁.
lansz 2009-01-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
把(nolock) 去掉.
[/Quote]

跟nolock什么关系?




如果很简单的语句都会出现阻塞的话需要考虑系统有没有其他的问题,不要去研究单个sql。
etuo8 2009-01-01
  • 打赏
  • 举报
回复
我把程序改一下测试看看,这个是什么原理呢?
至于第一条sp_reset_connection;1 阻塞是怎么回事呢?
谢谢老兄
dawugui 2009-01-01
  • 打赏
  • 举报
回复
把(nolock) 去掉.

34,587

社区成员

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

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