国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

避免資源死鎖:識別已打開的事務

2024-07-21 02:12:44
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

因為打開的事務可能會死鎖資源,引發性能的問題,所以了解在一個專用數據庫中哪些事務是打開的是很有幫助的。被死鎖的資源可能堵塞其他數據庫的用戶。

為了找出這些已打開的事務就要查詢master數據庫中的sysprocesses表。sysprocesses表有一個open_tran的列,它表示已有命令是否是一個打開的事務。如果值大于0表示它是一個已經打開的事務。sysprocesses表還有一個spid的列,表示正在訪問sql server的系統進程的id。你可以使用spid列作為dbcc inputbuffer()系統函數的參數。只有sql server的sysadmins帳號才可以執行這個函數。這個函數的輸出首先是spid對應的255字符的命令。你可以由此確定哪個命令是影響數據庫性能的罪魁禍首,然后根據spid發出一個kill命令。

下面是打印已打開事務的命令的腳本。它用到了表變量,因此只能在sql server 2000上用。

set nocount on
declare @commands
      table
      ( ctr int identity not null,
      command varchar(2000) not null)


insert @commands (command)
select 'dbcc inputbuffer (' + convert( varchar(10), spid) + ')'
from master..sysprocesses
where open_tran > 0


declare @ctr int, @command varchar(2000)
set @ctr = 1


while @ctr < (select count(*) + 1 from @commands)
begin
      select @command = command from @commands where ctr = @ctr
      print '-- ' + @command
      execute (@command)
      select @ctr = @ctr + 1
end

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙胜| 安图县| 佳木斯市| 麦盖提县| 普格县| 鸡东县| 河间市| 郑州市| 沂源县| 彭州市| 合山市| 伊春市| 封丘县| 榆中县| 黄山市| 琼结县| 象山县| 新干县| 资溪县| 邮箱| 钟祥市| 通辽市| 松江区| 仙桃市| 开远市| 仪陇县| 九江市| 长岭县| 彝良县| 昌图县| 桂阳县| 通化市| 奉节县| 阿克苏市| 剑川县| 连江县| 西贡区| 十堰市| 句容市| 夹江县| 化德县|