锁定 (SQL Server Compact Edition)

当多个用户或应用程序同时访问同一数据时,锁定可防止这些用户或应用程序同时对数据进行更改。锁由 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库引擎 在内部进行管理。根据用户采取的操作,会自动获取和释放锁。

如果在没有使用锁定时多个用户同时更新同一数据,则数据库内的数据会出现逻辑错误。如果出现这种情况,则对这些数据执行的查询可能会产生意外的结果。

应用程序从不直接请求锁。相反,当事务开始并在事务内以查询语言、数据操作语言 (DML) 或数据定义语言 (DDL) 执行命令时,SQL Server Compact Edition 会锁定任何所需的资源以帮助保护所需隔离级别的资源。

SQL Server Compact Edition 自动确定何时为所有资源授予和释放锁。默认情况下,行级锁定用于数据页,页级锁定用于索引页。为保留系统资源,当超过行锁数的可配置阈值时,锁管理器将自动执行锁升级。在锁管理器中可以为每个会话分配的最大锁数是 262143。

您可以选择更改某些操作的锁定粒度。请慎用此操作,因为更改锁定粒度可能对并发性有负面影响。

SQL Server Compact Edition 可以锁定下列资源:

  • 4 KB 数据页或索引页
  • 表架构
  • 数据库

在较小粒度(如行级)上锁定会提高并发性,但开销更多,因为如果锁定许多行,则必须持有更多的锁。在较大粒度(如表级)上锁定会降低并发性,因为锁定整个表会限制其他事务对该表任何部分的访问。但是,此级别上的锁定开销较少,因为维护的锁较少。

本节的相关信息

主题 说明

了解锁定

介绍 SQL Server 2005 Compact Edition 中锁定的基础知识。

显示锁定信息

介绍 sys.lock_information 视图返回的显示信息。

自定义锁定

介绍自定义锁定的方法。

请参阅

帮助和信息

获取 SQL Server Compact Edition 帮助