zoukankan      html  css  js  c++  java
  • sql server 查看锁表SQL【转】

    1、select * from sys.dm_tran_locks或sp_LOCK 查看request_node 字段中为'X'(排他锁)或'IX'(意向排他锁)
    2、用sp_who2 + pid(进程ID) 查看进程的详细信息
    3、用dbcc inputbuffer(pid) 查看一起死锁的语句内容


     发生阻塞时,透过以下命令,可看出是哪个进程 session id,阻塞了哪几个进程 session id,且期间经过了多少「毫秒 (ms)」。如下图 3 里 session id = 53 阻塞了 session id = 52 的进程。另透过 SQL Server Profiler 工具,也能看到相同的内容。

    SELECT blocking_session_id, wait_duration_ms, session_id FROM sys.dm_os_waiting_tasks 

     

    图 3 本帖前述会话 A 的 UPDATE 语句 (53),阻塞了会话 B 的 SELECT 语句 (52)

    透过以下两个命令,我们还能看到整个数据库的锁定和阻塞详细信息:

    SELECT * FROM sys.dm_tran_locks

    EXEC sp_lock

    图 4 session id = 52 的 process 因阻塞而一直处于等待中 (WAIT)

    另透过 KILL 命令,可直接杀掉造成阻塞的 process,如下:

    KILL 53

    ==================================================================
    
    

    sp_lock–查询哪个进程锁表了,spid:进程ID,ObjId:对象ID 
    EXEC sp_executesql N'KILL [spid]'–杀进程 
    select object_name([ObjId])–查询哪张表被锁,找到其中的objId不为0的那个

    – 使用sql语句进行查看 ,锁定的表名 
    select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName 
    from sys.dm_tran_locks where resource_type='OBJECT'

    spid 锁表进程 
    tableName 被锁定的表名

  • 相关阅读:
    16. 3Sum Closest
    17. Letter Combinations of a Phone Number
    20. Valid Parentheses
    77. Combinations
    80. Remove Duplicates from Sorted Array II
    82. Remove Duplicates from Sorted List II
    88. Merge Sorted Array
    257. Binary Tree Paths
    225. Implement Stack using Queues
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/Thenext/p/10235733.html
Copyright © 2011-2022 走看看