鎖定基本資訊
若要瞭解 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 中的鎖定,必須先熟悉可以鎖定的資源,以及可用於鎖定資源的各種鎖定模式。
鎖定資料粒度
鎖定資料粒度指的是鎖定發生的層級,包括:
- 資料列
- 資料表
- 頁面
- 資料庫
鎖定在較小的資料粒度 (如資料列層級) 可增加並行性,但是鎖定許多資料列時必須維持更多鎖定。鎖定在較大的粒度 (如資料表層級) 會降低並行性,因為鎖定完整的資料表會限制其他交易對此資料表任一部分的存取。不過,使用資料表層級鎖定時,必須維持的鎖定會較少。
依照預設,SQL Server Compact Edition 會將資料列層級鎖定用於資料頁,並將頁層級鎖定用於索引頁。
下表顯示 SQL Server Compact Edition 能夠鎖定的資源。
鎖定 | 描述 |
---|---|
RID |
資料列識別碼。用於鎖定資料表中的單一資料列。 |
PAG |
資料頁或索引頁。 |
TAB |
整個資料表,包括所有資料和索引 |
MD |
資料表中繼資料。用於保護資料表結構描述 |
DB |
資料庫 |
鎖定模式
鎖定模式決定並行交易如何存取資料。SQL Server Compact Edition 會根據必須鎖定的資源和必須執行的作業,判定採用何種鎖定模式。
下表說明 SQL Server Compact Edition 所支援的鎖定模式。
鎖定模式 | 描述 |
---|---|
共用 (S) |
保護資源使其僅供讀取存取。當資源設有共用 (S) 鎖定時,任何其他交易均無法修改資料。 |
獨佔 (X) |
指出資料修改,例如插入、更新或刪除。確保不會同時對相同資源進行多重更新。 |
更新 (U) |
防止一般形式的死結發生。一次只有一筆交易能取得某個資源的 U 鎖定。當該交易修改資源時,U 鎖定即轉換成 X 鎖定。 |
結構描述 |
相依於資料表結構描述的作業執行中時使用。結構描述鎖定的類型包括結構描述修改 (Sch-M) 及結構描述固定性 (Sch-S)。 |
意圖 |
建立鎖定階層。最常見的意圖鎖定類型為 IS、IU 及 IX。這些鎖定指出交易正在較低階層中的部分 (非全部) 資源上運作。較低階層資源會有 S、U 或 X 鎖定。 |
重要事項: |
---|
對於「讀取認可」的預設隔離層級,SQL Server Compact Edition 中的 SELECT 陳述式不需要使用 S 鎖定來讀取資料。儘管 S 鎖定在 Microsoft SQL Server 中屬於必要,但是 SQL Server Compact Edition 不需要使用 S 鎖定強制執行「讀取認可」。SELECT 陳述式唯一需要的鎖定是 Sch-S,以在作業執行時用於保護結構描述。因此,SELECT 陳述式有相當高的並行性。如需詳細資訊,請參閱<交易隔離等級>。 |
請參閱
概念
鎖定 (SQL Server Compact Edition)
瞭解鎖定
自訂鎖定