锁定的基本知识

若要了解 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 锁来读取数据。虽然这对于 Microsoft SQL Server 是必需的,但 SQL Server Compact Edition 不需要使用 S 锁来强制执行“提交读”。SELECT 语句需要的唯一锁是 Sch-S,它在操作执行时保护架构。因此,SELECT 语句是高度并发的。有关详细信息,请参阅事务隔离级别

请参阅

概念

锁定 (SQL Server Compact Edition)
了解锁定
自定义锁定

帮助和信息

获取 SQL Server Compact Edition 帮助