亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

MSSQL2005 SYS.SYSPROCESSES使用--整理帖

2019-11-03 08:35:52
字體:
來源:轉載
供稿:網友
SQL SERVER 2005 SYS.SYSPROCESSES 的使用

(一)理論部份

sysprocesses 表中保存關于運行在 Microsoft® SQL Server™ 上的進程的信息。這些進程可以是客戶端進程或系統進程。sysprocesses 只存儲在 master 數據庫中。

Sysprocesses各部份作用:

字段      數據類型   描述

spid       smallint    進程ID

kpid       smallint    線程ID

blocked    smallint    分塊進程ID (spid)

waittype   binary(2) 保留

waittime   int 當前等待時間(以毫秒為單位)當進程不處于等待時,為 0。

lastwaittype nchar(32) 表示上次或當前等待類型名稱的字符串。

waitresource nchar(32) 鎖資源的文本化表示法。

dbid smallint 當前正由進程使用的數據庫 ID。

uid smallint 執行命令的用戶 ID。

cpu int 進程的累計CPU時間無論SET STATISTICS TIME ON選項是ON還是OFF都為所有進程更新該條目。

physical_io int 進程的累計磁盤讀取和寫入。

memusage int 當前分配給該進程的過程高速緩存中的頁數。一個負數,表示進程正在釋放由另一個進程分配的內存。

login_time datetime 客戶端進程登錄到服務器的時間。對于系統進程,是存儲 SQL Server 啟動發生的時間。

last_batch datetime 客戶端進程上次執行遠程存儲過程調用或 EXECUTE 語句的時間。對于系統進程,是存儲 SQL Server 啟動發生的時間。

ecid smallint 用于唯一標識代表單個進程進行操作的子線程的執行上下文 ID。

open_tran smallint 進程的打開事務數。

status nchar(30) 進程 ID 狀態(如運行、休眠等)。

sid binary(85) 用戶的全局唯一標識符 (GUID)。

hostname nchar(128) 工作站的名稱。

program_name nchar(128) 應用程序的名稱。

hostprocess nchar(8) 工作站進程 ID 號。

cmd nchar(16) 當前正在執行的命令。

nt_domain nchar(128) 客戶端的 Windows NT 4.0 域(如果使用 Windows 身份驗證)或信任連接的 Windows NT 4.0 域。

nt_username nchar(128) 進程的 Windows NT 4.0用戶名(如果使用 Windows 身份驗證)或信任連接的 Windows NT 4.0 用戶名。

net_address nchar(12) 指派給每個用戶工作站上的網絡接口卡唯一標識符。當用戶登錄時,該標識符插入 net_address 列。

net_library nchar(12) 用于存儲客戶端網絡庫的列。每個客戶端進程都在網絡連接上進入。網絡連接有一個與這些進程關聯的網絡庫,該網絡庫使得這些進程可以建立連接。有關更多信息,請參見客戶端和服務器 Net-Library。

loginame nchar(128) 登錄名。

(二)實戰部份

(2.1)恢復數據庫而不能獲得專門的訪問,特別是恢復數據庫時候,報錯:(數據庫正在被其他用戶使用)

use master  

go

select  spid  

from sys.sysprocesses

where dbid=db_id('db_Sunrise') and spid<>@@spid

/*

spid

------

51

52

57

58

59

61

62

64

*/

KILL 51;

KILL 52 WITH STATUSONLY;

GO

--返回當前用戶進程的會話 ID、登錄名和用戶名。

SELECT @@SPID AS 'ID',

       SYSTEM_USER AS 'Login Name',

       USER AS 'User Name'

--如果進程比較多,可以動態執行

declare @sql varchar(8000)

select @sql =coalesce(@sql,'') +'Kill '+CAST(spid AS VARCHAR(10))+ ';'

from sys.sysprocesses  WHERE DBID=DB_ID('db_w
exec(@sql)

(2.2)查詢死鎖,解決死鎖

概念:

死鎖是一種可能發生在任何多線程系統中的狀態,而不僅僅發生在關系數據庫管理系統中。多線程系統中的一個線程可能獲取一個或多個資源(如鎖)。如果正獲取的資源當前為另一線程所擁有,則第一個線程可能必須等待擁有線程釋放目標資源。這時就說等待線程在那個特定資源上與擁有線程有相關性。

如果擁有線程需要獲取另外一個資源,而該資源當前為等待線程所擁有,則這種情形將成為死鎖:在事務提交或回滾之前兩個線程都不能釋放資源,而且它們因為正等待對方擁有的資源而不能提交或回滾事務。例如,運行事務 1 的線程 T1 具有 Supplier 表上的排它鎖。運行事務 2 的線程 T2 具有 Part 表上的排它鎖,并且之后需要 Supplier 表上的鎖。事務 2 無法獲得這一鎖,因為事務 1 已擁有它。事務 2 被阻塞,等待事務 1。然后,事務 1 需要 Part 表的鎖,但無法獲得鎖,因為事務 2 將它鎖定了。事務在提交或回滾之前不能釋放持有的鎖。因為事務需要對方控制的鎖才能繼續操作,所以它們不能提交或回滾。

死鎖經常與正常阻塞混淆。當一個事務鎖定了另一個事務需要的資源,第二個事務等待鎖被釋放。默認情況下,SQL Server 事務不會超時(除非設置了 LOCK_TIMEOUT)。第二個事務被阻塞,而不是被死鎖。

use master

go

declare @spid int,@bl int

declare s_cur cursor for

select  0 ,blocked

from (select * from sysprocesses where  blocked>0 ) a

where not exists(select * from (select * from sysprocesses where  blocked>0 ) b where a.blocked=spid)

union

select spid,blocked from sysprocesses where  blocked>0

open s_cur

fetch next from s_cur into @spid,@bl

while @@fetch_status = 0

begin

if @spid =0

   select N'引起數死鎖的是:'+ltrim(@bl)+N'進程號,其執SQL語法如下'



else

   select N'進程號:'+ ltrim(@bl)+N'被'+N'進程號:'+ltrim(@bl)+N'阻塞,其當前進 進程執行的SQL語法如下:'

dbcc inputbuffer (@bl )

fetch next from s_cur into @spid,@bl

end

close s_cur

deallocate s_cur

(2.3) 獲取連接SQL服務器的信息

if object_id('p_getlinkinfo','P')is not null drop proc p_getlinkinfo

go

create proc p_getlinkinfo   

@dbname sysname=null, --要查詢的數據庫名,默認表示所有  

@includeip bit=0      --是否顯示IP信息

as   

  begin

    declare @dbid int   

    set @dbid=db_id(@dbname)

    if object_id('tempdb..#tb')is not null drop table #tb

    if object_id('tempdb..#ip')is not null drop table #ip    

    create table #tb

       (id int identity(1,1),

        dbname sysname,

        hostname nchar(128),

        loginname nchar(128),

        net_address nchar(12),

        net_ip nvarchar(15),

        prog_name   nchar(128))   

    insert into #tb(hostname,dbname,net_address,loginname,prog_name)   

    select distinct hostname,

         db_name(dbid),

         net_address,

         loginame,

         program_name

    from master..sysprocesses   

    where hostname!=''and(@dbid is null or dbid=@dbid)   

    if @includeip=0 goto lb_show --不顯示IP   

    declare @sql varchar(500),@hostname nchar(128),@id int   

    create table #ip(hostname nchar(128),a varchar(200))   

    declare tb cursor local for select distinct hostname from #tb   

    open tb   

    fetch next from tb into @hostname   

    while @@fetch_status=0   

    begin   

     set @sql='ping   '+@hostname+'   -a   -n   1   -l   1'   

     insert #ip(a) exec master..xp_cmdshell @sql   

     update #ip    set  hostname=@hostname where hostname is null   

     fetch next from tb into @hostname   

    end   

    update #tb set net_ip=left(a,patindex('%:%',a)-1)   

    from #tb a inner join

    (select hostname,a=substring(a,patindex('Ping statistics for %:%',a)+20,20)

    from #ip   

    where a like'Ping statistics for %:%')b

    on a.hostname=b.hostname   

lb_show:   

    select   id,

           dbname,

           hostname,

           loginname,

           net_address,

           net_ip,

           prog_name   

    from #tb   

  end  

  go     

exec p_getlinkinfo @dbname='DB_WIP',@includeip=1  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲品质视频自拍网| 精品成人av一区| 庆余年2免费日韩剧观看大牛| 成人有码在线播放| 欧美亚洲日本网站| 7777kkkk成人观看| 亚洲精品黄网在线观看| 欧美视频在线免费| 一区二区三区在线播放欧美| 精品国产一区二区三区久久久狼| 亚洲人高潮女人毛茸茸| 国产成人高清激情视频在线观看| 亚洲跨种族黑人xxx| 永久免费毛片在线播放不卡| 日韩一区二区久久久| 欧美性猛交丰臀xxxxx网站| 国产成人精品视| 欧美色videos| 4438全国亚洲精品在线观看视频| 久久精品一本久久99精品| 精品成人久久av| 国产精品av免费在线观看| 国产亚洲精品一区二区| 午夜精品一区二区三区av| 原创国产精品91| 亚洲精品久久久久久久久久久久久| 欧美一级视频一区二区| 亚洲欧美中文字幕在线一区| 亚洲国产精品va在线| 国产精品久久久亚洲| 久久99精品久久久久久噜噜| 亚洲高清一区二| 成人网欧美在线视频| 亚洲国产一区二区三区在线观看| 日韩免费在线播放| 456国产精品| 欧美俄罗斯性视频| 国产精品久久久久9999| 久久亚洲精品小早川怜子66| 91免费国产视频| 亚洲精品理论电影| 91在线|亚洲| 国产日韩在线免费| 中文字幕无线精品亚洲乱码一区| 亚洲天堂免费观看| 久久精品国产久精国产思思| 国产精品久久久久久久av电影| 日本一本a高清免费不卡| 日韩精品免费在线播放| 日韩视频免费在线| 亚洲人成绝费网站色www| 欧美精品中文字幕一区| 欧美成人第一页| 日韩av在线免费观看| 欧美午夜久久久| 成人日韩在线电影| 欧美中在线观看| 热久久99这里有精品| 日韩av片电影专区| 久久777国产线看观看精品| 亚洲精品在线视频| 正在播放国产一区| 亚洲国产精品网站| 亚洲天堂男人天堂女人天堂| 亚洲影视中文字幕| 69久久夜色精品国产7777| 欧美日韩中文字幕日韩欧美| 美女国内精品自产拍在线播放| 久久综合久久88| 久久影视电视剧免费网站清宫辞电视| 久久综合亚洲社区| 一个人看的www久久| 亚洲欧美国产精品va在线观看| 国产999精品久久久影片官网| 日韩性xxxx爱| 国产精品色婷婷视频| 日韩中文有码在线视频| 精品亚洲aⅴ在线观看| 欧美激情在线视频二区| 国产在线视频2019最新视频| 欧美一区二区视频97| 国产精品一久久香蕉国产线看观看| 成人h猎奇视频网站| 欧美精品在线观看| 狠狠躁夜夜躁人人爽超碰91| 美女黄色丝袜一区| 91精品国产免费久久久久久| 亚洲欧美日韩区| 亚洲男人7777| 欧美视频第一页| 国产成人一区二区三区小说| 精品亚洲国产成av人片传媒| 成人观看高清在线观看免费| 97超级碰碰碰| 2019国产精品自在线拍国产不卡| 国产99久久久欧美黑人| 日本久久久久久久久| 欧美激情二区三区| 欧美日韩国产精品| 精品福利免费观看| 美女国内精品自产拍在线播放| 伊人久久久久久久久久久久久| 少妇久久久久久| 成人精品在线观看| 欧美裸体男粗大视频在线观看| 精品久久久久久国产91| 日韩中文在线中文网三级| 精品人伦一区二区三区蜜桃免费| 日本sm极度另类视频| 精品亚洲va在线va天堂资源站| 91香蕉嫩草神马影院在线观看| 欧美特黄级在线| 欧美成年人在线观看| 久久91亚洲精品中文字幕| 国产精品中文字幕在线观看| 精品亚洲一区二区三区在线播放| 日韩小视频在线| 亚洲色图35p| 一区二区三区 在线观看视| 欧美性猛交xxx| 97色在线观看| 亚洲专区在线视频| 亚洲石原莉奈一区二区在线观看| 亚洲人成77777在线观看网| 精品国内亚洲在观看18黄| 国产91成人video| 九色精品免费永久在线| 中文字幕在线国产精品| 国模视频一区二区| 亚洲欧美一区二区三区情侣bbw| 2019中文字幕在线免费观看| 98精品国产自产在线观看| 亚洲成人激情在线| 国产精品盗摄久久久| 久久久精品国产一区二区| 91九色单男在线观看| 久久电影一区二区| 亚洲激情视频网站| 亚洲第一二三四五区| 亚洲美女av电影| 91精品久久久久久综合乱菊| 成人福利视频网| 国产在线拍揄自揄视频不卡99| 国产精品一区二区三区免费视频| 伦理中文字幕亚洲| 韩国19禁主播vip福利视频| 久久天天躁狠狠躁夜夜av| 国产91免费看片| 精品久久久久久久久久国产| 久久精品国产96久久久香蕉| 久久视频中文字幕| 亚洲无线码在线一区观看| 中文字幕av一区中文字幕天堂| 久久久91精品国产| 热久久视久久精品18亚洲精品| 欧美高跟鞋交xxxxhd| 国产精品久久久久久中文字| 日韩av在线不卡| 久久免费少妇高潮久久精品99| 日韩av三级在线观看| 色婷婷亚洲mv天堂mv在影片| 久久影院资源网| 亚洲欧美日韩直播| 国产精品视频地址|