欢迎投稿

今日深度:

Sqlserver之死锁查询以及批量解锁的实现方法,

Sqlserver之死锁查询以及批量解锁的实现方法,


目录
  • Sqlserver死锁查询以及批量解锁方法
    • Sqlserver死锁查询以及解锁方法
    • sqlserver 批量kill死锁
  • 解决sqlserver死锁问题
    • 创造死锁
    • 解决方法
  • 总结

    Sqlserver死锁查询以及批量解锁方法

    Sqlserver死锁查询以及解锁方法

    (1)下面是查询死锁进程

    select 
    request_session_id spid,                              (死锁进程id)
    OBJECT_NAME(resource_associated_entity_id) tableName  (死锁进程名称)
    from sys.dm_tran_locks 
    where resource_type='OBJECT'                          (数据类型所有)

    (2)杀死死锁进程

    declare @spid int                                      //声明id
    Set     @spid = 62                                     //设置死锁id
    declare @sql varchar(1000)                             //声明sql 
    set     @sql='kill '+cast(@spid as varchar)            //设置 kill掉死锁进程
    exec    (@sql)                                         //执行

    或者

    kill 62;

    sqlserver 批量kill死锁

    select 'kill '+CONVERT(varchar,request_session_id) ,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks
    where
       resource_type='OBJECT'

    解决sqlserver死锁问题

    创造死锁

    -- 开始事务
    BEGIN TRANSACTION 
    update job set create_user='0000' where id = '1'
    WAITFOR DELAY '02:00'
    -- 执行查询
    select * from job where id = '1';

    解决方法

    方法一

    • 打开sqlserver管理工具,新建sql查询tab
    • 执行select * from master.sys.sysprocesses where dbid=db_id(‘数据库名’)
    • 然后会查询到具体有哪个在连接到此数据库
    • 直接KILL spid的具体数值就可以了

    方法二

    -- 首先查询
    select    
        request_session_id spid,   
        OBJECT_NAME(resource_associated_entity_id) tableName    
    from    
        sys.dm_tran_locks   
    where    
        resource_type='OBJECT' 
    -- 然后执行
        kill 67;

    注意事项:

    有些用户连接可以在kill掉后自动重建,但期间有一段时间,如果碰到这种情况,需要在执行完kill命令后立即执行脱机操作

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持PHP之友。

    您可能感兴趣的文章:
    • SqlServer查询和Kill进程死锁的语句
    • 查询Sqlserver数据库死锁的一个存储过程分享
    • 查找sqlserver查询死锁源头的方法 sqlserver死锁监控

    www.htsjk.Com true http://www.htsjk.com/Sql_Server/46747.html NewsArticle Sqlserver之死锁查询以及批量解锁的实现方法, 目录 Sqlserver死锁查询以及批量解锁方法 Sqlserver死锁查询以及解锁方法 sqlserver 批量kill死锁 解决sqlserver死锁问题 创造死锁 解决方法 总结...
    评论暂时关闭