想知道检查的方法,首先是不是先看看数据库里,哪些表给锁了呢?(如果数据写不进的时候),在SQL 2005管理界面里直接可以看吗?另外,是不是代码中会引起这样的死锁的?存储过程也有可能的。是吗?(一个数据库,对应着很多应用程序,这可费时间去查了。。-_-)之前从来没遇过这样的情况,请大家指导一下小弟了。:)谢谢。

解决方案 »

  1.   

    用sp_who2 active查看进程被锁定的情况,判断一下原因再看看需要改那里,
      

  2.   

    只找到了下面的信息。:(1     BACKGROUND                     sa   .   . NULL RESOURCE MONITOR 0 0 04/03 15:14:38                                                1     0    
    2     BACKGROUND                     sa   .   . NULL LAZY WRITER      15 0 04/03 15:14:38                                                2     0    
    3     SUSPENDED                      sa   .   . NULL LOG WRITER       15 0 04/03 15:14:38                                                3     0    
    4     BACKGROUND                     sa   .   . NULL LOCK MONITOR     0 0 04/03 15:14:38                                                4     0    
    5     BACKGROUND                     sa   .   . master SIGNAL HANDLER   0 0 04/03 15:14:38                                                5     0    
    6     sleeping                       sa   .   . master TASK MANAGER     0 0 04/03 15:14:38                                                6     0    
    7     BACKGROUND                     sa   .   . master TRACE QUEUE TASK 0 0 04/03 15:14:38                                                7     0    
    8     sleeping                       sa   .   . NULL UNKNOWN TOKEN    0 0 04/03 15:14:38                                                8     0    
    9     BACKGROUND                     sa   .   . master BRKR TASK        0 0 04/03 15:14:38                                                9     0    
    10    BACKGROUND                     sa   .   . master TASK MANAGER     0 0 04/03 15:14:38                                                10    0    
    11    SUSPENDED                      sa   .   . master CHECKPOINT       62 149 04/03 15:14:38                                                11    0    
    12    BACKGROUND                     sa   .   . master BRKR EVENT HNDLR 15 33 04/03 15:14:38                                                12    0    
    13    BACKGROUND                     sa   .   . master BRKR TASK        0 0 04/03 15:14:38                                                13    0    
    14    sleeping                       sa   .   . master TASK MANAGER     0 0 04/03 15:14:38                                                14    0    
    15    sleeping                       sa   .   . master TASK MANAGER     0 5 04/03 15:14:38                                                15    0    
    16    sleeping                       sa   .   . master TASK MANAGER     0 5 04/03 15:14:38                                                16    0    
    17    sleeping                       sa   .   . master TASK MANAGER     0 10 04/03 15:14:38                                                17    0    
    18    sleeping                       sa   .   . master TASK MANAGER     0 5 04/03 15:14:38                                                18    0    
    19    sleeping                       sa   .   . master TASK MANAGER     0 0 04/03 15:14:38                                                19    0    
    20    sleeping                       sa   .   . master TASK MANAGER     0 5 04/03 15:14:38                                                20    0    
    21    sleeping                       sa   .   . master TASK MANAGER     0 6 04/03 15:14:38                                                21    0    
    66    RUNNABLE                       sa LG   . master SELECT INTO      47 5 04/08 10:04:58 Microsoft SQL Server Management Studio - Query 66    0    
      

  3.   

    事务处理完了,但是锁没解除,会出现这个问题。
    到你的程序里,搜索一下LOCK这个关键字。
    把你的所有存储过程,生成一个SQL脚本,搜索一下LOCK这个关键字。
    把目标逐渐缩小,再进行解决。
      

  4.   

    查过了,没有在程序或者SQL里用过LOCK这样的关键字,我强烈怀疑,是不是在一些SP里,用了TRANSACTION,但是里面有错误,没有把TRANSACTION做COMMIT或者ROLLBACK,而导致了死锁。
      

  5.   


    dbcc opentrans看看那些事务,进程锁住了。
      

  6.   


    dbcc opentran写错了,多加了个S
      

  7.   

    显示的东西看不太懂:(没看到有什么东西锁的。。No active open transactions.
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.