https://docs.microsoft.com/zh-cn/dotnet/framework/data/adonet/optimistic-concurrency數據庫
在多用戶環境中,有兩種用於更新數據庫中數據的模型:開放式併發和保守式併發。 設計 DataSet對象的目的是爲了促進將開放式併發用於長時間運行的活動,例如對數據進行遠程處理以及與數據進行交互時。編程
保守式併發涉及到鎖定數據源中的行,以防止其餘用戶因修改數據而影響當前用戶。 在保守式模型中,當用戶執行會應用鎖的操做時,其餘用戶將沒法執行可能與鎖發生衝突的操做,直到鎖全部者釋放鎖爲止。 此模型主要用於如下環境:對數據存在激烈爭用,使得用鎖保護數據的成本少於在發生併發衝突時回滾事務的成本。api
所以,在保守式併發模型中,更新行的用戶將會創建鎖。 在該用戶完成更新並釋放鎖以前,其餘任何用戶都沒法更改鎖定行。 所以,若是鎖定時間將會比較短(例如在以編程方式處理記錄時),最好實現保守式併發。 若是用戶與數據進行交互,會使記錄鎖定相對長的時間,保守式併發並非可伸縮的選項。併發