数据库有一个中端表,每个中端都要频繁的更新最后连接时间,语句都是单条的select和update,没有做事物,没有涉及多个表,但是大量的死锁下面的跟踪截图.我不清楚这2个发生死锁的资源,是什么,我只对一个表select或update
请指教

解决方案 »

  1.   

    只有RID,没建立索引?
    还有UPDATE 更新的顺序要一致,如果一下1,2,  另一下2,1,当然就像你上面的,二者等待了
      

  2.   

    原来id列有一个聚集索引,死锁,被我删掉换成另一个列的非聚集所以,依然死锁,我只update了一个表,不存在先后顺序的问题啊..
      

  3.   

    with (nolock) 这样看行不
      

  4.   

    1.检查程序连线数据库的参数是什么,改为默认值试试.2.查询语句(select)可以在表名后加(nolock).
      

  5.   

    楼主提供下产生死锁的两个T-SQL内容,来进一步确定死锁原因。
      

  6.   

    update Account set lastConTime='2012-1-1 10:10:10' where Account='133333'
    update Account set lastConTime='2012-1-1 10:10:14' where Account='144444'
      

  7.   

    使用行级锁,每个进程只对需要更新的行加锁
    update tb with (rowset) set colname=value
      

  8.   


    上面的命令写错啦,
    使用行级锁,每个进程只对需要更新的行加锁
    update tb with (rowlock) set colname=value
      

  9.   


    这个表有多大? Account有没有索引?
      

  10.   


    这两个结果贴出来看看
    sp_helpindex Account 
    sp_spaceused Account下面这个的执行计划贴出来看看
    update Account set lastConTime='2012-1-1 10:10:10' where Account='133333'