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 被锁定的表名

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

     转自: https://blog.csdn.net/xiangbq/article/details/48031459

  • 相关阅读:
    串 --- 匹配
    串 --- 匹配
    计算几何 --- 哈希优化
    哈希 --- 线性探测法
    拓扑排序 --- 反向建图
    swift学习
    CocoaPods安装教程 pod setup很慢解决方案
    Adobe Fireworks CS6 Mac破解版
    iStat for mac
    mac环境下清理系统垃圾clearMyMac 3.9 破解版
  • 原文地址:https://www.cnblogs.com/railgunman/p/9581979.html
Copyright © 2011-2022 走看看