使用鎖定做為交易控制機制,可以解決並行問題。鎖定可讓所有的交易彼此在完全隔離的情況下執行,雖然任何時候都可能有一個以上的交易在執行。交易準備好接受不一致資料的等級,稱為隔離等級。增加的隔離等級可針對資料不一致提供更多的保護,但缺點是並行會減少。
在 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 中,應用程式需要的隔離等級決定 SQL Server Compact Edition 使用的鎖定行為。
SQL Server Compact Edition 支援下列的隔離等級 (從最低到最高)︰
- 讀取認可 (SQL Server Compact Edition 預設值)
- 可重複讀取
- 可序列化 (交易彼此完全隔離)
當隔離等級提高,資料在資料不一致上就獲得越多的保護。然而,這會降低交易的並行,並影響多使用者存取。
附註: |
|---|
| SQL Server Compact Edition 確保一個交易無法讀取另一個交易未認可的資料 (強行讀取)。只要使用資料頁版本控制機制就可以做到,因為該機制讓使用者不必要求鎖定資料就可讀取資料。這提供讀取 (SELECT) 作業的例外並行。 |
隔離等級和並行問題
下表顯示隔離的等級,以及該等級提出的並行問題。
附註: |
|---|
| 可能發生的並行問題包括未認可的相依性、不一致的分析以及幽靈讀取 (phantom read) 等。如需並行問題的詳細資訊,請參閱<並行>。 |
| 隔離等級 | 未認可的相依性 (強行讀取) | 不一致的分析 (非重複讀取) | 幽靈讀取 |
|---|---|---|---|
讀取認可 |
否 |
是 |
是 |
可重複讀取 |
否 |
否 |
是 |
可序列化 |
否 |
否 |
否 |
隔離等級可以用程式設計的方式設定,或是使用 SQL 語法 SET TRANSACTION ISOLATION LEVEL 設定。如需詳細資訊,請參閱<交易隔離等級>。
請參閱
概念
交易 (SQL Server Compact Edition)
鎖定 (SQL Server Compact Edition)
資料指標 (SQL Server Compact Edition)
附註: