併發操作所起的作用

     在多用戶環境中,有兩種用於更新數據庫中數據的模型:開放式併發和保守式併發。設計 DataSet 對象的目的是爲了促進將開放式併發用於長時間運行的活動,例如對數據進行遠程處理以及與數據進行交互時。
    保守式併發涉及到鎖定數據源中的行,以防止其他用戶因修改數據而影響當前用戶。在保守式模型中,當用戶執行會應用鎖的操作時,其他用戶將無法執行可能與鎖發生衝突的操作,直到鎖所有者釋放鎖爲止。此模型主要用於以下環境:對數據存在激烈爭用,使得用鎖保護數據的成本少於在發生併發衝突時回滾事務的成本。
    因此,在保守式併發模型中,更新行的用戶建立鎖。在該用戶完成更新並釋放鎖之前,其他任何用戶都無法更改鎖定行。因此,如果鎖定時間將會比較短(例如在以編程方式處理記錄時),最好實現保守式併發。如果用戶與數據進行交互,會使記錄鎖定相對長的時間,保守式併發並不是可伸縮的選項。
    對比之下,使用開放式併發的用戶在讀取行時不會鎖定該行。當用戶要更新某行時,應用程序必須確定自讀取該行以來,其他用戶是否更改了該行。開放式併發通常用於對數據爭用較少的環境。由於不需要鎖定任何記錄,開放式併發將會提高性能,因爲鎖定記錄需要更多的服務器資源。另外,爲了維護記錄鎖,需要與數據庫服務器保持持久連接。由於在開放式併發模型中並不會這樣,所以與服務器的連接可以在較少的時間內爲更多的客戶端提供服務。
    在開放式併發模型中,如果當某用戶接收到來自數據庫的值後,另一用戶在該用戶試圖修改該值之前即將其修改,則認爲發生了衝突。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章