用SQL Server數(shù)據(jù)庫(kù)鎖來(lái)定時(shí)間的長(zhǎng)短方法
此文章主要講述的是用SQL Server數(shù)據(jù)庫(kù)鎖來(lái)定時(shí)間的長(zhǎng)短方法,相信如果你掌握了SQL Server數(shù)據(jù)庫(kù)鎖來(lái)定時(shí)間的長(zhǎng)短這項(xiàng)技術(shù),會(huì)在以后的學(xué)習(xí)或是工作中帶來(lái)很大的幫助,鎖保持的時(shí)間長(zhǎng)度為保護(hù)所請(qǐng)求級(jí)別上的資源所需的時(shí)間長(zhǎng)度。
用于保護(hù)讀取操作的共享SQL Server數(shù)據(jù)庫(kù)鎖的保持時(shí)間取決于事務(wù)隔離級(jí)別。采用 READ COMMITTED 的默認(rèn)事務(wù)隔離級(jí)別時(shí),只在讀取頁(yè)的期間內(nèi)控制共享鎖。在掃描中,直到在掃描內(nèi)的下一頁(yè)上獲取鎖時(shí)才釋放鎖。如果指定 HOLDLOCK 提示或者將事務(wù)隔離級(jí)別設(shè)置為 REPEATABLE READ 或 SERIALIZABLE,則直到事務(wù)結(jié)束才釋放鎖。
根據(jù)為游標(biāo)設(shè)置的并發(fā)選項(xiàng),游標(biāo)可以獲取共享模式的滾動(dòng)鎖以保護(hù)提取。當(dāng)需要滾動(dòng)鎖時(shí),直到下一次提取或關(guān)閉游標(biāo)(以先發(fā)生者為準(zhǔn))時(shí)才釋放滾動(dòng)鎖。但是,如果指定 HOLDLOCK,則直到事務(wù)結(jié)束才釋放滾動(dòng)鎖。
用于保護(hù)更新的排它鎖將直到事務(wù)結(jié)束才釋放。
如果一個(gè)連接試圖獲取一個(gè)鎖,而該SQL Server數(shù)據(jù)庫(kù)鎖與另一個(gè)連接所控制的鎖沖突,則試圖獲取鎖的連接將一直阻塞到:
將沖突SQL Server數(shù)據(jù)庫(kù)鎖釋放而且連接獲取了所請(qǐng)求的鎖。
連接的超時(shí)間隔已到期。默認(rèn)情況下沒(méi)有超時(shí)間隔,但是一些應(yīng)用程序設(shè)置超時(shí)間隔以防止無(wú)限期等待
上述的相關(guān)內(nèi)容就是對(duì)用SQL Server數(shù)據(jù)庫(kù)鎖來(lái)定時(shí)間的長(zhǎng)短的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】