進(jìn)程process1對table1持有1個(gè)排它鎖(X),同時(shí)process1對table2請求1個(gè)排它鎖(X),
    進(jìn)程process2對tab " /> www.日韩av.com,国产欧美精品在线观看,韩国一区二区三区视频

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

通過SQL Server Profiler來監(jiān)視分析死鎖

  在兩個(gè)或多個(gè)SQL Server進(jìn)程中,每一個(gè)進(jìn)程鎖定了其他進(jìn)程試圖鎖定的資源,就會出現(xiàn)死鎖,例如,
    進(jìn)程process1對table1持有1個(gè)排它鎖(X),同時(shí)process1對table2請求1個(gè)排它鎖(X),
    進(jìn)程process2對table2持有1個(gè)排它鎖(X),同時(shí)process2對table1請求1個(gè)排它鎖(X)

  類似這種情況,就會出現(xiàn)死鎖,除非當(dāng)某個(gè)外部進(jìn)程斷開死鎖,否則死鎖中的兩個(gè)事務(wù)都將無限期等待下去。

  Microsoft SQL Server 數(shù)據(jù)庫引擎死鎖監(jiān)視器定期檢查陷入死鎖的任務(wù)。

  如果監(jiān)視器檢測到循環(huán)依賴關(guān)系,將選擇其中一個(gè)任務(wù)作為犧牲品(通常是選擇占資源比較小的進(jìn)程作為犧牲品),然后終止其事務(wù)并提示錯(cuò)誤1205

  這里我們通過SQL Server Profiler來監(jiān)視分析死鎖的發(fā)生過程,那樣我們就會深刻理解死鎖的成因。

  1.創(chuàng)建測試表。

  在 Microsoft SQL Server Management  Studio上,新建一個(gè)查詢,寫創(chuàng)建表DealLockTest_1 & DealLockTest_2兩個(gè)表:

   腳本:

代碼use Test

--創(chuàng)建分析死鎖使用到的兩個(gè)表DealLockTest_1 & DealLockTest_2
go
Set Nocount On    
Go
if object_id('DealLockTest_1'Is Not Null
    
Drop Table DealLockTest_1
go
Create Table DealLockTest_1
(
    ID 
int Identity(1,1Primary Key,
    Name 
nvarchar(512)
)

if object_id('DealLockTest_2'Is Not Null
    
Drop Table DealLockTest_2
go
Create Table DealLockTest_2
(
    ID 
int Identity(1,1Primary Key,
    Name 
nvarchar(512)
)

Go

--插入一些測試數(shù)據(jù)
Insert Into DealLockTest_1(Name)
    
Select name From sys.all_objects

    
Insert Into DealLockTest_2(Name)
    
Select name From sys.all_objects
Go
    

it知識庫通過SQL Server Profiler來監(jiān)視分析死鎖,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 西乡县| 大渡口区| 遂宁市| 成都市| 克拉玛依市| 唐海县| 巴彦淖尔市| 黄浦区| 博罗县| 利辛县| 稻城县| 白银市| 九江市| 岫岩| 开平市| 巍山| 禹州市| 乡宁县| 绥棱县| 大悟县| 黔江区| 金湖县| 宁津县| 察隅县| 舒城县| 利津县| 吴忠市| 兰坪| 张掖市| 板桥市| 清新县| 韩城市| 凤山县| 乡宁县| 九江市| 梧州市| 仲巴县| 云南省| 青川县| 麟游县| 昭苏县|