zoukankan      html  css  js  c++  java
  • 查询锁事务及语句

    if exists(select * from master.sys.sysprocesses where spid in (select blocked from master.sys.sysprocesses))
    
    begin
    
    ---确定进程被锁住的其他资源
    
    select spid 进程,STATUS 状态, 登录帐号=SUBSTRING(SUSER_SNAME(sid),1,30)
    
    ,用户机器名称=SUBSTRING(hostname,1,12)
    
    ,是否被锁住=convert(char(3),blocked)
    
    ,数据库名称=SUBSTRING(db_name(dbid),1,20),cmd 命令,waittype as 等待类型
    
    ,last_batch 最后批处理时间,open_tran 未提交事务的数量
    
    from master.sys.sysprocesses
    
    --列出锁住别人(在别的进程中blocked字段中出现的值)但自己未被锁住(blocked=0)
    
    Where spid in (select blocked from master.sys.sysprocesses) and blocked=0
    
    end
    
    else 
    
    begin
    
    select '没有被锁住的进程'
    
    end 
    
    select t1.resource_type [资源锁定类型],DB_NAME(resource_database_id) as 数据库名
    
    ,t1.resource_associated_entity_id 锁定对象,t1.request_mode as 等待者请求的锁定模式
    
    ,t1.request_session_id 等待者SID
    
    ,t2.wait_duration_ms 等待时间
    
    ,(select TEXT from sys.dm_exec_requests r cross apply
    
    sys.dm_exec_sql_text(r.sql_handle) where r.session_id=t1.request_session_id) as 等待者要执行的SQL
    
    ,(select SUBSTRING(qt.text,r.statement_start_offset/2+1,
    
    (case when r.statement_end_offset=-1 then DATALENGTH(qt.text) else r.statement_end_offset end -r.statement_start_offset)/2+1
    
    )
    
    from sys.dm_exec_requests r cross apply sys.dm_exec_sql_text(r.sql_handle)qt
    
    where r.session_id=t1.request_session_id) 等待者正要执行的语句
    
    ,t2.blocking_session_id [锁定者SID]
    
    ,(select TEXT from sys.sysprocesses p cross apply
    
    sys.dm_exec_sql_text(p.sql_handle)
    
    where p.spid=t2.blocking_session_id
    
    ) 锁定者执行语句
    
    from sys.dm_tran_locks t1,sys.dm_os_waiting_tasks t2
    
    where t1.lock_owner_address=t2.resource_address
    

      

  • 相关阅读:
    python简单的游戏场景代码
    ZooKeeper应用场景
    Zookeeper配置文件中的配置项解释和Zookeeper的安装
    MapReduce的手机流量统计的案例
    java和js获取当前天之后或之前7天(任意)日期
    JDK中ThreadDump诊断Java代码中的线程死锁问题
    Java代码调用Oracle的存储过程,存储函数和包
    Oracle的卸载过程步骤
    JDK中ConcurrentHashMap效率测试
    JDK提供的四种线程池代码详解
  • 原文地址:https://www.cnblogs.com/junko/p/3726230.html
Copyright © 2011-2022 走看看