SQL 死锁

Mark杨 2016-02-13 07:33:38
最近数据访问量一大,老出现死锁。看了一些资料,还是很多都不懂得如何去分析。
比如这个:


还有一个

我SELECT已经加了NOLOCK了,还是会出现S锁
...全文
314 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
责任after自由 2016-02-22
  • 打赏
  • 举报
回复
通过下面的语句分析产生锁的语句,进而修复语句。其实根本原因还是在sql语句上。 DBCC OPENTRAN GO SELECT st.text,t2.* FROM sys.dm_exec_sessions AS t2,sys.dm_exec_connections AS t1 CROSS APPLY sys.dm_exec_sql_text(t1.most_recent_sql_handle) AS st WHERE t1.session_id = t2.session_id AND t1.session_id=‘进程号’
qq_31132779 2016-02-22
  • 打赏
  • 举报
回复
你执行下你的语句, select * from sys.dm_tran_locks 分析下锁的情况先把~~
Mark杨 2016-02-19
  • 打赏
  • 举报
回复


这几天弄负载,没上来看。
这个是加了的,还是会
LongRui888 2016-02-15
  • 打赏
  • 举报
回复
如果加了nolock,确实不会获取S锁,所以也不太可能出现你第2个图的情况。 最好能把原来的语句贴出来。
吉普赛的歌 2016-02-15
  • 打赏
  • 举报
回复
@code nvarchar(31)select * from TUser where FuserCode=@code order by PUserID
上面是你图片上的SQL, 你哪里加了什么 nolock ?
fengxiaohan211 2016-02-14
  • 打赏
  • 举报
回复
说的详细点吧 贴出语句
道素 2016-02-14
  • 打赏
  • 举报
回复
no lock 慎用,会读取dirty 数据。帮不上多大忙,看看下面的文章能不能提供点帮助。 你先看看能不能找到每次发生死锁的规律,这样能确定大致问题的方向 http://www.cnblogs.com/rush/archive/2012/02/19/2358209.html https://www.simple-talk.com/sql/database-administration/handling-deadlocks-in-sql-server/
薛定谔的DBA 2016-02-14
  • 打赏
  • 举报
回复
上面的语句没看见有 NOLOCK 啊?你这是跨分区查询产生的锁吧
xiaoxiangqing 2016-02-14
  • 打赏
  • 举报
回复
找出死锁的语句,再优化下。

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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