mssql数据库频繁操作死锁,如何解决,有跟踪日志,谁能帮我分析下死锁的原因和如何解决呢
数据库有一个中端表,每个中端都要频繁的更新最后连接时间,语句都是单条的select和update,没有做事物,没有涉及多个表,但是大量的死锁下面的跟踪截图.
我不清楚这2个发生死锁的资源,是什么,我只对一个表select或update
请指教
------解决方案--------------------典型的同时持有资源,得不到释放。
先从流程上是否可以解决,最后考虑事务的锁级别。
------解决方案--------------------只有RID,没建立索引?
还有UPDATE 更新的顺序要一致,如果一下1,2, 另一下2,1,当然就像你上面的,二者等待了
------解决方案--------------------with (nolock) 这样看行不
------解决方案--------------------1.检查程序连线数据库的参数是什么,改为默认值试试.
2.查询语句(select)可以在表名后加(nolock).
------解决方案--------------------使用行级锁,每个进程只对需要更新的行加锁
SQL code
update tb with (rowset) set colname=value
------解决方案--------------------
上面的命令写错啦,
使用行级锁,每个进程只对需要更新的行加锁
SQL code
update tb with (rowlock) set colname=value
------解决方案--------------------
------解决方案--------------------
SQL code
这两个结果贴出来看看
sp_helpindex Account
sp_spaceused Account
下面这个的执行计划贴出来看看
update Account set lastConTime='2012-1-1 10:10:10' where Account='133333'