<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    blog.Toby

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      130 隨筆 :: 2 文章 :: 150 評(píng)論 :: 0 Trackbacks
    use   master   --必須在master數(shù)據(jù)庫中創(chuàng)建  
      go  
       
      if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_lockinfo]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)  
      drop   procedure   [dbo].[p_lockinfo]  
      GO  
       
      /*--處理死鎖  
       
        查看當(dāng)前進(jìn)程,或死鎖進(jìn)程,并能自動(dòng)殺掉死進(jìn)程  
       
        因?yàn)槭轻槍?duì)死的,所以如果有死鎖進(jìn)程,只能查看死鎖進(jìn)程  
        當(dāng)然,你可以通過參數(shù)控制,不管有沒有死鎖,都只查看死鎖進(jìn)程  
       
        感謝:   caiyunxia,jiangopen   兩位提供的參考信息  
       
      --鄒建   2004.4--*/  
       
      /*--調(diào)用示例  
       
        exec   p_lockinfo  
      --*/  
      create   proc   p_lockinfo  
      @kill_lock_spid   bit=1,     --是否殺掉死鎖的進(jìn)程,1   殺掉,   0   僅顯示  
      @show_spid_if_nolock   bit=1   --如果沒有死鎖的進(jìn)程,是否顯示正常進(jìn)程信息,1   顯示,0   不顯示  
      as  
      declare   @count   int,@s   nvarchar(1000),@i   int  
      select   id=identity(int,1,1),標(biāo)志,  
        進(jìn)程ID=spid,線程ID=kpid,塊進(jìn)程ID=blocked,數(shù)據(jù)庫ID=dbid,  
        數(shù)據(jù)庫名=db_name(dbid),用戶ID=uid,用戶名=loginame,累計(jì)CPU時(shí)間=cpu,  
        登陸時(shí)間=login_time,打開事務(wù)數(shù)=open_tran,   進(jìn)程狀態(tài)=status,  
        工作站名=hostname,應(yīng)用程序名=program_name,工作站進(jìn)程ID=hostprocess,  
        域名=nt_domain,網(wǎng)卡地址=net_address  
      into   #t   from(  
        select   標(biāo)志='死鎖的進(jìn)程',  
          spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran,  
          status,hostname,program_name,hostprocess,nt_domain,net_address,  
          s1=a.spid,s2=0  
        from   master..sysprocesses   a   join   (  
          select   blocked   from   master..sysprocesses   group   by   blocked  
          )b   on   a.spid=b.blocked   where   a.blocked=0  
        union   all  
        select   '|_犧牲品_>',  
          spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran,  
          status,hostname,program_name,hostprocess,nt_domain,net_address,  
          s1=blocked,s2=1  
        from   master..sysprocesses   a   where   blocked<>0  
      )a   order   by   s1,s2  
       
      select   @count=@@rowcount,@i=1  
       
      if   @count=0   and   @show_spid_if_nolock=1  
      begin  
        insert   #t  
        select   標(biāo)志='正常的進(jìn)程',  
          spid,kpid,blocked,dbid,db_name(dbid),uid,loginame,cpu,login_time,  
          open_tran,status,hostname,program_name,hostprocess,nt_domain,net_address  
        from   master..sysprocesses  
        set   @count=@@rowcount  
      end  
       
      if   @count>0  
      begin  
        create   table   #t1(id   int   identity(1,1),a   nvarchar(30),b   Int,EventInfo   nvarchar(255))  
        if   @kill_lock_spid=1  
        begin  
          declare   @spid   varchar(10),@標(biāo)志   varchar(10)  
          while   @i<=@count  
          begin  
            select   @spid=進(jìn)程ID,@標(biāo)志=標(biāo)志   from   #t   where   id=@i  
            insert   #t1   exec('dbcc   inputbuffer('+@spid+')')  
            if   @標(biāo)志='死鎖的進(jìn)程'   exec('kill   '+@spid)  
            set   @i=@i+1  
          end  
        end  
        else  
          while   @i<=@count  
          begin  
            select   @s='dbcc   inputbuffer('+cast(進(jìn)程ID   as   varchar)+')'   from   #t   where   id=@i  
            insert   #t1   exec(@s)  
            set   @i=@i+1  
          end  
        select   a.*,進(jìn)程的SQL語句=b.EventInfo  
        from   #t   a   join   #t1   b   on   a.id=b.id  
      end  
      go 


    -------------------------------------------------------------
    --查看死鎖進(jìn)程:  
      select   標(biāo)志,  
        進(jìn)程ID=spid,線程ID=kpid,塊進(jìn)程ID=blocked,數(shù)據(jù)庫ID=dbid,  
        數(shù)據(jù)庫名=db_name(dbid),用戶ID=uid,用戶名=loginame,累計(jì)CPU時(shí)間=cpu,  
        登陸時(shí)間=login_time,打開事務(wù)數(shù)=open_tran,   進(jìn)程狀態(tài)=status,  
        工作站名=hostname,應(yīng)用程序名=program_name,工作站進(jìn)程ID=hostprocess,  
        域名=nt_domain,網(wǎng)卡地址=net_address  
        from(  
        select   標(biāo)志='死鎖的進(jìn)程',  
          spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran,  
          status,hostname,program_name,hostprocess,nt_domain,net_address,  
          s1=a.spid,s2=0  
        from   master..sysprocesses   a   join   (  
          select   blocked   from   master..sysprocesses   group   by   blocked  
          )b   on   a.spid=b.blocked   where   a.blocked=0  
        union   all  
        select   '|_犧牲品_>',  
          spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran,  
          status,hostname,program_name,hostprocess,nt_domain,net_address,  
          s1=blocked,s2=1  
        from   master..sysprocesses   a   where   blocked<>0  
      )a   order   by   s1,s2
    posted on 2009-02-14 11:26 渠上月 閱讀(2718) 評(píng)論(0)  編輯  收藏 所屬分類: sql (sqlServer)
    主站蜘蛛池模板: 成人黄软件网18免费下载成人黄18免费视频 | 日产亚洲一区二区三区| 久久精品无码专区免费东京热| 亚洲av一本岛在线播放| 男人的天堂亚洲一区二区三区 | 亚洲av永久无码精品天堂久久| 日本不卡在线观看免费v| 成人无码精品1区2区3区免费看| 亚洲视频在线观看免费视频| 日韩精品视频免费在线观看| 精品无码国产污污污免费网站国产 | 免费人妻无码不卡中文字幕系 | 伊人免费在线观看高清版| 亚洲狠狠ady亚洲精品大秀| 成人永久免费高清| 三年片在线观看免费大全电影 | 国产成人免费AV在线播放 | 国产在线精品观看免费观看| 亚洲一级免费毛片| 国产亚洲日韩一区二区三区| 成人黄动漫画免费网站视频 | 免费国产作爱视频网站| 亚洲视频无码高清在线| 久久久久亚洲精品男人的天堂| 99国产精品视频免费观看| 处破女第一次亚洲18分钟| 亚洲精品欧洲精品| 国产成人精品久久亚洲高清不卡 | 美丽的姑娘免费观看在线播放| 人禽伦免费交视频播放| 亚洲人成网站色7799| 亚洲色图综合网站| 国产成人麻豆亚洲综合无码精品| 精品久久久久成人码免费动漫 | www.91亚洲| 永久免费av无码不卡在线观看| a色毛片免费视频| 免费在线观看亚洲| 色噜噜亚洲男人的天堂| 亚洲高清在线mv| 亚洲欧洲∨国产一区二区三区|