自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

產(chǎn)生SQL Server死鎖的原因與破解

數(shù)據(jù)庫(kù) SQL Server
本文主要描述的是SQL Server死鎖的產(chǎn)生緣由,以及對(duì)SQL Server死鎖的具體解決方案的描述,以下就是對(duì)相關(guān)內(nèi)容的描述。

以下的文章主要向大家講述的是產(chǎn)生SQL Server死鎖的原因與其具體的解決辦法,我們大家都知道所有死鎖產(chǎn)生的最深層的原因是資源況爭(zhēng),本文就是以舉例的方式來(lái)對(duì)這個(gè)問(wèn)題進(jìn)行說(shuō)明。

現(xiàn)象一

一個(gè)用戶(hù)A訪問(wèn)表A(鎖住了表A),然后又訪問(wèn)表B,另一個(gè)用戶(hù)B 訪問(wèn)表B(鎖住了表B),然后企圖訪問(wèn)表A這時(shí)用戶(hù)A由于用戶(hù)B已經(jīng)鎖住表B,它必須等待用戶(hù)B釋放表B,才能繼續(xù),同樣用戶(hù)B要等用戶(hù)A釋放表A才能繼續(xù)這就SQL Server死鎖了。

SQL Server死鎖的解決方法:

這種SQL Server死鎖是由于你的程序的BUG產(chǎn)生的,除了調(diào)整你的程序的邏輯別無(wú)他法,仔細(xì)分析你程序的邏輯:

1、盡量避免同時(shí)鎖定兩個(gè)資源;

2、必須同時(shí)鎖定兩個(gè)資源時(shí),要保證在任何時(shí)刻都應(yīng)該按照相同的順序來(lái)鎖定資源。

現(xiàn)象二

用戶(hù)A讀一條紀(jì)錄,然后修改該條紀(jì)錄,這是用戶(hù)B修改該條紀(jì)錄,這里用戶(hù)A的事務(wù)里鎖的性質(zhì)由共享鎖企圖上升到獨(dú)占鎖(for update),而用戶(hù)B里的獨(dú)占鎖由于A有共享鎖存在所以必須等A釋?zhuān)诺艄蚕礞i,而A由于B的獨(dú)占鎖而無(wú)法上升的獨(dú)占鎖也就不可能釋放共享鎖,于是出現(xiàn)了SQL Server死鎖。這種死鎖比較隱蔽,但其實(shí)在稍大點(diǎn)的項(xiàng)目中經(jīng)常發(fā)生。

解決方法:

讓用戶(hù)A的事務(wù)(即先讀后寫(xiě)類(lèi)型的操作),在select 時(shí)就是用Update lock

語(yǔ)法如下:

  1. select * from table1 with(updlock) where  

以上的相關(guān)內(nèi)容就是對(duì)SQL Server死鎖產(chǎn)生的原因及解決辦法的介紹,望你能有所收獲。 

SQL Server死鎖產(chǎn)生的原因及解決辦法


上述的相關(guān)內(nèi)容就是對(duì)SQL Server死鎖產(chǎn)生的原因及解決辦法的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。

【編輯推薦】

  1. 實(shí)現(xiàn)SQL Server 2005中的模糊查找包并不難
  2. SQL Server數(shù)據(jù)庫(kù)如何正確加密?
  3. 如何實(shí)現(xiàn)SQL Server臨時(shí)表的創(chuàng)建?
  4. SQL Server查詢(xún)優(yōu)化的好用方案
  5. SQL Server數(shù)據(jù)庫(kù)中優(yōu)化索引的妙招
責(zé)任編輯:佚名 來(lái)源: 每日經(jīng)濟(jì)新聞
相關(guān)推薦

2010-07-23 11:35:03

SQL Server置

2010-07-22 10:02:12

SQL Server置

2010-11-09 16:29:39

SQL Server死

2010-07-07 13:58:25

SQL Server死

2010-07-06 10:08:57

SQL Server

2022-05-11 07:41:55

死鎖運(yùn)算線程

2010-08-20 11:28:45

DB2 -964問(wèn)題

2010-06-30 14:15:08

SQL Server死

2010-07-20 10:27:57

SQL Server

2024-12-27 00:00:00

SQL死鎖數(shù)據(jù)庫(kù)

2024-01-19 21:55:57

C++編程代碼

2010-11-09 17:04:20

SQL Server死

2010-07-26 13:33:28

SQL Server

2010-09-14 15:34:29

sql server死

2010-11-09 17:02:43

SQL Server死

2011-04-02 17:08:44

SQL Server死鎖

2014-03-17 10:34:48

SQL Server

2010-07-23 09:44:51

2010-11-09 16:20:46

SQL Server死

2010-11-09 16:37:25

Sql server死
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)