樂觀的假設(shè)是,當(dāng)你閱讀的時(shí)候,什么都不會改變。
悲觀的人認(rèn)為某些東西會因此鎖定它。
如果沒有必要完美地讀取數(shù)據(jù),請使用樂觀。你可能會讀到奇怪的“臟”字-但它不太可能導(dǎo)致死鎖等等。
大多數(shù)Web應(yīng)用程序?qū)εK讀取都很好-在極少數(shù)情況下,數(shù)據(jù)并不能準(zhǔn)確地統(tǒng)計(jì)下一個(gè)重新加載的數(shù)據(jù)。
對于確切的數(shù)據(jù)操作(如許多金融事務(wù)),請使用悲觀操作。重要的是,數(shù)據(jù)是準(zhǔn)確地讀取,沒有任何未顯示的變化-額外的鎖定開銷是值得的。
哦,Microsoft SQL Server默認(rèn)使用頁面鎖定-基本上就是您正在讀取的行和其中任何一方。行鎖定更準(zhǔn)確,但速度要慢得多。通常值得將事務(wù)設(shè)置為讀已提交或無鎖,以避免在讀取時(shí)出現(xiàn)死鎖。