麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

詳解SQL死鎖檢測(cè)的方法

2024-08-31 01:03:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
sql server中的死鎖是指進(jìn)程之間互相永久阻塞的狀態(tài),下文就將為您介紹如何檢測(cè)sql server死鎖,希望對(duì)您有所幫助。
 

sql server中的死鎖是指進(jìn)程之間互相永久阻塞的狀態(tài),下文就將為您介紹如何檢測(cè)sql server死鎖,希望對(duì)您有所幫助。

死鎖(deadlock)指進(jìn)程之間互相永久阻塞的狀態(tài),SQL可以檢測(cè)到死鎖,并選擇終止其中一個(gè)事務(wù)以干預(yù)sql server死鎖狀態(tài)。

第一步:首先創(chuàng)建兩個(gè)測(cè)試表,表goods_sort和goods

表goods_sort:創(chuàng)建并寫入測(cè)試數(shù)據(jù)

IF EXISTS(SELECT name FROM sysobjects WHERE name='goods_sort' AND xtype='U')DROP TABLE dbo.goods_sort--創(chuàng)建商品分類表CREATE TABLE dbo.goods_sort(iSortID int NOT NULLCONSTRAINT PK_iSortID PRIMARY KEYIDENTITY(1001,1),sSortName NVARCHAR(20) NOT NULL)GOINSERT INTO dbo.goods_sort VALUES('服飾')INSERT INTO dbo.goods_sort VALUES('女包')INSERT INTO dbo.goods_sort VALUES('鞋子')INSERT INTO dbo.goods_sort VALUES('首飾')INSERT INTO dbo.goods_sort VALUES('美容')GO

表goods:創(chuàng)建并寫入測(cè)試數(shù)據(jù)

IF EXISTS(SELECT name FROM sysobjects WHERE name='goods' AND xtype='U')DROP TABLE dbo.goods;--創(chuàng)建商品表CREATE TABLE dbo.goods(iID int NOT NULLCONSTRAINT PK_iID PRIMARY KEYIDENTITY(1,1),iGoodsID varchar(20) NOT NULL,sGoodsName nvarchar(100) NOT NULL,iGoodTotal int NOT NULLCONSTRAINT DF_iGoodTotal DEFAULT(0),iPrice int NOT NULLCONSTRAINT DF_iPrice DEFAULT(0),iPriceTotal int NOT NULL,iSortID int NOT NULL,tAddDate smalldatetime NOT NULLCONSTRAINT DF_tAddDate DEFAULT getdate())GOINSERT INTO dbo.goods(iGoodsID,sGoodsName,iGoodTotal,iPrice,iPriceTotal,iSortID)VALUES('YR6001','瘦身羽絨服',20,200,4000,1001)INSERT INTO dbo.goods(iGoodsID,sGoodsName,iGoodTotal,iPrice,iPriceTotal,iSortID)VALUES('YR6002','加厚羽絨服',20,300,6000,1001)INSERT INTO dbo.goods(iGoodsID,sGoodsName,iGoodTotal,iPrice,iPriceTotal,iSortID)VALUES('BB7001','小黃牛皮馬鞍包',30,100,3000,1002)INSERT INTO dbo.goods(iGoodsID,sGoodsName,iGoodTotal,iPrice,iPriceTotal,iSortID)VALUES('BB7002','十字繡流蘇包',50,150,7500,1002)GO

第二步:創(chuàng)建兩個(gè)會(huì)產(chǎn)生死鎖的事務(wù)

事務(wù)1:

SET NOCOUNT ON;SET XACT_ABORT ON;GO--使用TRY-CATCH,使代碼發(fā)生錯(cuò)誤也繼續(xù)運(yùn)行BEGIN TRYBEGIN TRANUPDATE dbo.goods_sort SET sSortName='女鞋' WHERE iSortID=1003;WAITFOR DELAY '00:00:05';UPDATE dbo.goods SET sGoodsName='胖子羽絨服' WHERE iID=2;COMMIT TRANEND TRYBEGIN CATCHIF (XACT_STATE()=-1)ROLLBACK TRAN;--ERROR_NUMBER()值為1205則表示發(fā)生了死鎖IF (ERROR_NUMBER() = 1205)PRINT '事務(wù)1發(fā)生了死鎖'--寫SQL Server日志或者返回錯(cuò)誤給應(yīng)用程序END CATCHSELECT iID,sGoodsName FROM dbo.goods WHERE iID=2;SELECT iSortID,sSortName FROM dbo.goods_sort WHERE iSortID=1003;GO 

事務(wù)2:

SET NOCOUNT ON;SET XACT_ABORT ON;GO--使用TRY-CATCH,使代碼發(fā)生錯(cuò)誤也繼續(xù)運(yùn)行BEGIN TRYBEGIN TRANUPDATE dbo.goods SET sGoodsName='瘦子羽絨服' WHERE iID=2;WAITFOR DELAY '00:00:05';UPDATE dbo.goods_sort SET sSortName='男鞋' WHERE iSortID=1003;COMMIT TRANEND TRYBEGIN CATCHIF (XACT_STATE()=-1)ROLLBACK TRAN;--ERROR_NUMBER()值為1205則表示發(fā)生了死鎖IF (ERROR_NUMBER() = 1205)PRINT '事務(wù)2發(fā)生了死鎖'--寫SQL Server日志或者返回錯(cuò)誤給應(yīng)用程序END CATCHSELECT iID,sGoodsName FROM dbo.goods WHERE iID=2;SELECT iSortID,sSortName FROM dbo.goods_sort WHERE iSortID=1003;GO 

然后運(yùn)行事務(wù)1,接著馬上運(yùn)行事務(wù)2,這種情況下某一個(gè)事務(wù)會(huì)提示發(fā)生了死鎖,修改不成功。另外一個(gè)事務(wù)則完成。

第一點(diǎn):使用TRY.CATCH讓產(chǎn)生異常的事務(wù)能繼續(xù)完成后面的代碼。

第二點(diǎn):使用WAITFOR DELAY產(chǎn)生造成死鎖的發(fā)生環(huán)境。

第三點(diǎn):使用ERROR_NUMBER()來(lái)判斷是否發(fā)生事務(wù)。

第四點(diǎn):發(fā)生死鎖,寫SQL Server日志或者返回應(yīng)用程序去寫日志。便于檢查日志的時(shí)候發(fā)現(xiàn)存在死鎖并做相應(yīng)的修改。

以上內(nèi)容給大家介紹了SQL死鎖檢測(cè)的方法,希望大家喜歡。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MSSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产一级一国产一级毛片 | 久久久久久久黄色片 | 欧美日韩精品中文字幕 | 美女视频黄视大全视频免费网址 | 中文字幕在线观看www | 亚洲第五色综合网 | 免费黄色在线观看网站 | 亚洲午夜1000理论片aa | 久久精品欧美电影 | 国产免费一区二区三区在线能观看 | 天天看天天摸天天操 | 亚洲情在线 | av手机在线电影 | 密室逃脱第一季免费观看完整在线 | 国产精品久久久久久久久岛 | 国产精品区在线12p 午夜视频色 | 成人毛片免费看 | 日日夜av| 黄色羞羞视频在线观看 | 中国漂亮护士一级a毛片 | 99精品视频在线观看免费 | 成人午夜视屏 | 欧美大电影免费观看 | 久久艹艹艹| 欧美爱爱视频免费看 | 欧美黄 片免费观看 | 中文字幕欧美日韩 | 成人在线视频一区 | 黄www片| 国产精品剧情一区二区在线观看 | 国产三级a三级三级 | 黄色a级片视频 | 在线播放免费视频 | 国产视频在线观看免费 | 久久国产精品久久久久久久久久 | 中文字幕在线观看视频一区 | 久久亚洲国产精品 | 色域tv | 欧美日本亚洲视频 | 国产亚洲欧美日韩在线观看不卡 | 成人一级片毛片 |