並行控制類型

當有許多人會同時嘗試修改資料庫中的資料時,必須實作一個控制系統,這樣某一個人所做的修改才不會嚴重影響到另一個人所做的修改。這就叫做並行控制。

並行控制理論將制定並行控制的方法分為二類:

  • 悲觀並行控制

    鎖定系統可防止使用者以會影響其他使用者的方法來修改資料。使用者在執行某個動作而造成套用鎖定之後,其他使用者就不能執行會與該鎖定衝突的動作,直到擁有者解除鎖定為止。這就叫做封閉式並行控制,因為這種方法主要是用在高度爭用資料的環境中,以鎖定方式來保護資料的成本,會低於發生並行衝突時回復交易的成本。

  • 樂觀並行控制

    在開放式並行控制中,使用者在讀取資料時,不會將資料鎖定。當使用者更新資料時,系統會查看在讀取資料之後,是否有其他使用者變更了該資料。若有其他使用者更新了該資料,就會產生錯誤。一般而言,收到錯誤的使用者會回復交易,並重新開始。這就叫做開放式並行控制,因為這種方法主要是用在低度爭用資料的環境中,偶爾回復交易的成本會低於讀取時鎖定資料的成本。

Microsoft SQL Server 可支援並行控制的範圍。使用者可針對連接來選取交易隔離等級,或是在資料指標上選取並行選項,以指定並行控制的類型。這些屬性可用 Transact-SQL 陳述式來定義,或是透過資料庫應用程式發展介面 (API) (例如 ADO、ADO.NET、OLE DB 及 ODBC) 的內容及屬性來定義。

如需資料指標中之並行作業的詳細資訊,請參閱<資料指標並行 (Database Engine)>。

如需交易隔離等級的詳細資訊,請參閱<Database Engine 中的隔離等級>。

請參閱

概念