進程process1對table1持有1個排它鎖(X),同時process1對table2請求1個排它鎖(X),
    進程process2對tab " /> 日韩一级完整毛片,国产麻豆成人传媒免费观看,欧美日韩精品一区

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

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

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

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

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

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

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

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

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

   腳本:

代碼use Test

--創(chuàng)建分析死鎖使用到的兩個表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ù)據
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)視分析死鎖,轉載需保留來源!

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

主站蜘蛛池模板: 邢台县| 香港 | 连州市| 望谟县| 湖州市| 砚山县| 中山市| 宜昌市| 伊金霍洛旗| 修武县| 临朐县| 新邵县| 山东| 潼关县| 西峡县| 普定县| 乐东| 泗阳县| 郧西县| 泊头市| 桑植县| 旺苍县| 洪雅县| 防城港市| 漾濞| 剑川县| 淮阳县| 汉阴县| 房山区| 常宁市| 赣州市| 乌拉特中旗| 乌拉特后旗| 任丘市| 汉川市| 外汇| 清流县| 崇信县| 申扎县| 阿巴嘎旗| 汝南县|