网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

自动检查sqlserver中死锁的存储过程

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:网学会员为您提供自动检查sqlserver中死锁的存储过程参考,解决您在自动检查sqlserver中死锁的存储过程学习中工作中的难题,参考学习。


    CREATEPROCEDUREauto_checkblocksAS
    setnocounton
    ifexists(select*frommaster..sysprocesseswhereblocked<>0)
    
    begin
    /*showtopblockers,butnoduplicates*/
    
    selectconvert(char(24),getdate(),13)
    select'注意发生阻塞!请不要慌张,请仔细查看下面的信息。导致问题的锁进程:'
    select'请尝试使用KILL[SPID]来杀进程'
    select'请尝试使用SP_LOCK[SPID]来显示锁信息,用OBJECT_NAME(ID)来显示锁对象名称或用sp_who[SPID]来显示信息'
    select'在使用OBJECT_NAME显示对象名称时请注意对应的db_id'
    
    selectdistinct
    '进程ID'=str(spid,4),
    '进程ID状态'=convert(char(10),status),
    '分块进程的进程ID'=str(blocked,2),
    '工作站名称'=convert(char(10),hostname),
    '执行命令的用户'=convert(char(10),suser_name(uid)),
    '数据库名'=convert(char(10),db_name(dbid)),
    '应用程序名'=convert(char(10),program_name),
    '正在执行的命令'=convert(char(16),cmd),
    '累计CPU时间'=str(cpu,7),
    'IO'=str(physical_io,7),
    '登录名'=loginame
    frommaster..sysprocesses
    wherespidin(selectblockedfrommaster..sysprocesses)
    andblocked=0
    orderbystr(spid,4)
    
    /*显示阻塞牺牲品*/
    select'以上阻塞的牺牲品'
    select
    '进程ID[SPID]'=str(spid,4),
    '进程ID状态'=convert(char(10),status),
    '分块进程的进程ID'=str(blocked,2),
    '工作站名称'=convert(char(10),hostname),
    '执行命令的用户'=convert(char(10),suser_name(uid)),
    '数据库名'=convert(char(10),db_name(dbid)),
    '应用程序名'=convert(char(10),program_name),
    '正在执行的命令'=convert(char(16),cmd),
    '累计CPU时间'=str(cpu,7),
    'IO'=str(physical_io,7),
    '登录名'=loginame
    frommaster..sysprocesses
    whereblocked<>0
    orderbyspid
    end
    
    else
    begin
    select'恭喜!当前没有阻塞,当前的进程信息
    如下.',convert(char(24),getdate(),13)
    select
    '进程ID'=str(spid,4),
    '进程ID状态'=convert(char(10),status),
    '分块进程的进程ID'=str(blocked,2),
    '工作站名称'=convert(char(10),hostname),
    '执行命令的用户'=convert(char(10),suser_name(uid)),
    '数据库名'=convert(char(10),db_name(dbid)),
    '应用程序名'=convert(char(10),program_name),
    '正在执行的命令'=convert(char(16),cmd),
    '累计CPU时间'=str(cpu,7),
    'IO'=str(physical_io,7),
    '登录名'=loginame
    frommaster..sysprocesses
    whereblocked=0
    orderbyspid
    end
    
    return
    GO
    
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师