你的程序在事务处理上有没有commit tran呀???

解决方案 »

  1.   

    1。看看数据库文件所在的硬盘空间是否足够;
    2。查看前台程序是否有没有及时回滚或提交,特别是前台的游标、数据窗口和DCL语句。
    3。同一个事务中对一个表的重复操作不会引起死锁,但是如果有几个比较长的事务同时运行,可能由于事务对表的锁定而引起其他事务进入等待状态,既所谓“堵塞”;堵塞可能会造成数据库当机,但一般不会引起死锁。
    4。尽量用短事务方式,特别是终端比较多的时候;增强数据操作时的过滤条件设置,提高运行速度,减少堵塞现象的发生。
    5。增加前台程序中对数据操作结果的检验,操作失败后及时回滚。
      

  2.   

    一般锁死主要还是事务没有结束的问题。再使用事务时,确认在结束时进行了。commit tran或者rollback tran
      

  3.   

    你可以用set deadlock_priority影响牺牲者的选择决策
      

  4.   

    如何才能找到确切的死锁部分?
    我在每个insert, update 部分都加了rollback tran
    部分insert 和 update 也很正常(查看table后知道的)
    最后却变成了死锁.