av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

講解一下SQLServer死鎖問題

死鎖不僅在個(gè)人學(xué)習(xí)中,甚至在開發(fā)中也并不常見。但是一旦出現(xiàn)死鎖,后果將非常嚴(yán)重。 首先什么是死鎖呢?打個(gè)比方,就好像有兩個(gè)人打架,互相限制住了(鎖住,抱住)彼此一樣,互相動(dòng)彈不得,而且互相歐氣,你不松手我就不松手。好了誰也動(dòng)彈不得。 在多線程的環(huán)境下,勢必會(huì)對資源進(jìn)行搶奪。當(dāng)兩個(gè)線程鎖住了當(dāng)前資源,但都需要對方的資源才能進(jìn)行下一步操作,這個(gè)時(shí)候兩方就會(huì)一直等待對方的資源釋放。這就形成了死鎖。這些永遠(yuǎn)在互相等待的進(jìn)程稱為死鎖進(jìn)程。

創(chuàng)新互聯(lián)公司是一家專注于做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),敘永網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:敘永等地區(qū)。敘永做網(wǎng)站價(jià)格咨詢:18982081108

  1. 創(chuàng)建一個(gè)Database,名為InvDB。

  2. 執(zhí)行下面腳本創(chuàng)建person表并填充兩條數(shù)據(jù):


  3. 在SQL Server Management Studio的兩個(gè)窗口中同時(shí)執(zhí)行下面的查詢:

    這段代碼在默認(rèn)的READ COMMITTED隔離級別下運(yùn)行,兩個(gè)進(jìn)程分別在獲取一個(gè)排它鎖的情況下,申請對方的共享鎖從而造成死鎖。

可見一個(gè)進(jìn)程可以正常更新并顯示結(jié)果,而另一個(gè)進(jìn)程已經(jīng)被回滾:

(1 row(s) affected) Msg 1205, Level 13, State 45, Line 8 Transaction (Process ID 55) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
  1. 啟動(dòng) SQL Server Profiler,選擇下面4種Events:


  2. 再執(zhí)行一次上面的死鎖實(shí)驗(yàn),可以看到如下所示的死鎖圖:

    非常有趣的一點(diǎn)是:第二次執(zhí)行上述語句不會(huì)發(fā)生死鎖!這是因?yàn)榇藭r(shí)兩個(gè)進(jìn)程中,SQL Server會(huì)智能的識(shí)別出update語句是不需要做的,所以都不會(huì)去獲取排它鎖,當(dāng)然也就不會(huì)死鎖了。SQL Server 2008 的查詢優(yōu)化器還真是非常強(qiáng)大!


當(dāng)前名稱:講解一下SQLServer死鎖問題
文章來源:http://uogjgqi.cn/article/cdiddcc.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流