共用方式為


並行

並行是多使用者同時存取資料的能力。當資料庫可支援的同時作業數量相當大時,就會增加資料庫並行。在 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 中,可藉由使用鎖定以保護資料來達成並行控制。鎖定控制多使用者如何同時存取和變更共用的資料,而不會彼此衝突。如需詳細資訊,請參閱<鎖定 (SQL Server Compact Edition)>。

並行問題

如果您不管理多使用者的資料修改和讀取,可能會發生並行問題。例如,如果數個使用者同時存取資料庫,他們的交易可能會同時對相同的資料執行作業。某些在使用 SQL Server Compact Edition 時發生的並行問題,包括下列事項︰

  • 遺失更新。
    當兩個以上的交易選取相同的資料列時,會遺失更新,然後根據原始選取的值更新資料列。最後的更新會覆寫其他交易所做的更新,導致資料遺失。
  • 不一致的分析 (非重複讀取)。
    當第二個交易存取相同的資料列數次,且每次讀取不同的資料時,就會發生非重複讀取。這涉及相同資料列的多重讀取。資訊每次都會被其他交易變更。
  • 幽靈讀取。
    針對交易讀取之資料列範圍中的某一資料列執行插入或刪除動作時,會發生幽靈讀取。交易首次讀取的資料列範圍顯示資料列已不存在於後續讀取,因為已被不同的交易刪除。相同地,由於被不同交易插入,交易的後續讀取會顯示已不存在於原始讀取的資料列。
附註:
一個極為常見但 SQL Server Compact Edition 不會發生的並行問題是未認可的相依性 (中途讀取)。此問題會在第二個交易選取正被另一個交易更新的資料列時發生。第二個交易讀取的資料尚未被認可,且可能因交易更新資料列而變更。使用 Microsoft SQL Server 2005 的同時,會發生強行讀取。如需並行問題的詳細資訊,請參閱《SQL Server 線上叢書》的<並行影響>。

並行控制

在資料庫案例中,有兩種並行控制機制類型︰

  • 開放式並行控制
    在多使用者之間的資源衝突並不常發生,且允許交易在不鎖定任何資源的情況下執行的假設下,開放式並行存取控制才會發生作用。只有在交易試圖變更資料時,才會檢查資源。這決定是否有任何衝突發生 (例如藉由檢查版本號碼)。如果發生衝突,應用程式必須讀取資料,並再一次嘗試變更。此產品未提供開放式並行控制,但您可藉由追蹤資料庫存取,手動將其建置到應用程式中。
  • 封閉式並行控制
    封閉式並行控制在交易執行期間,會視需要鎖定資源。SQL Server Compact Edition 支援在交易執行期間視需要鎖定資源的封閉式並行控制。

如需開放式和封閉式並行的詳細資訊,請參閱《SQL Server 線上叢書》的<並行控制類型>。

請參閱

概念

交易 (SQL Server Compact Edition)
鎖定 (SQL Server Compact Edition)
多使用者存取

說明及資訊

取得 SQL Server Compact Edition 協助