共用方式為


鎖定基本資訊

若要了解 Microsoft SQL Server Compact 4.0 中的鎖定,您必須先熟悉可以鎖定的資源,以及可用於鎖定資源的各種鎖定模式。

鎖定資料粒度

鎖定資料粒度指的是鎖定發生的層級,包括:

  • 資料列

  • 資料表

  • 頁面

  • 資料庫

鎖定在較小的資料粒度 (如資料列層級) 可增加並行性,但是鎖定許多資料列時必須維持更多鎖定。鎖定在較大的粒度 (如資料表層級) 會降低並行性,因為鎖定完整的資料表會限制其他交易對此資料表任一部分的存取。不過,使用資料表層級鎖定時,必須維持的鎖定會較少。

依照預設,SQL Server Compact 4.0 會將資料列層級鎖定用於資料頁,並將頁層級鎖定用於索引頁。

下表顯示 SQL Server Compact 4.0 能夠鎖定的資源。

鎖定

說明

RID

資料列識別碼。用於鎖定資料表中的單一資料列。

PAG

資料頁或索引頁。

TAB

整個資料表,包括所有資料和索引

MD

資料表中繼資料。用於保護資料表結構描述

DB

資料庫

鎖定模式

鎖定模式決定並行交易如何存取資料。SQL Server Compact 4.0 會根據必須鎖定的資源和必須執行的作業,判定採用何種鎖定模式。

下表說明 SQL Server Compact 4.0 所支援的鎖定模式。

鎖定模式

說明

共用 (S)

保護資源使其僅供讀取存取。當資源設有共用 (S) 鎖定時,任何其他交易均無法修改資料。

獨佔 (X)

指出資料修改,例如插入、更新或刪除。確保不會同時對相同資源進行多重更新。

更新 (U)

防止一般形式的死結發生。一次只有一筆交易能取得某個資源的 U 鎖定。當該交易修改資源時,U 鎖定即轉換成 X 鎖定。

結構描述

相依於資料表結構描述的作業執行中時使用。結構描述鎖定的類型包括結構描述修改 (Sch-M) 及結構描述固定性 (Sch-S)。

意圖

建立鎖定階層。最常見的意圖鎖定類型為 IS、IU 及 IX。這些鎖定指出交易正在較低階層中的部分 (非全部) 資源上運作。較低階層資源會有 S、U 或 X 鎖定。

重要

對於「讀取認可」的預設隔離層級,SQL Server Compact 4.0 中的 SELECT 陳述式不需要使用 S 鎖定來讀取資料。儘管 S 鎖定在 MicrosoftSQL Server 中屬於必要,但是 SQL Server Compact 4.0 不需要使用 S 鎖定強制執行「讀取認可」。SELECT 陳述式唯一需要的鎖定是 Sch-S,以在作業執行時用於保護結構描述。因此,SELECT 陳述式有相當高的並行性。如需詳細資訊,請參閱<交易隔離等級>。

請參閱

概念

鎖定 (SQL Server Compact)

了解鎖定

自訂鎖定