页锁定

创建不带 LOCK MODE 子句的表时,页锁定是缺省方式。用锁定页 代替仅锁定行,数据库服务器就可以锁定包含该行的整个页。 如果更新同一页上的几行,数据库服务器只使用该页上的一个锁定。

插入或更新行时,数据库服务器在数据页面上创建页锁。 在某些情况下,当您简单地使用 SELECT 语句读取某行时,数据库服务器将创建页锁。

当您插入、更新或删除某个关键字时(插入、更新或删除某行时会自动执行),那么数据库服务器会在包含索引中的关键字的页上创建锁定。
要点: 索引页上的页锁相比数据页面上的页锁,更能大大减少并行性。 索引页很密集,其中含有很多关键字。 通过锁定索引页,您潜在地使得大量关键字对于其他用户不可用,直到您解除该锁定为止。 使用页锁的表不支持已落实读取隔离部分所述的 USELASTCOMMITTED 并行功能。

对于那些普通用户一次更改大量行的表来说,页锁非常有用。 例如:如果一个 orders 表所包含的订单通常是被逐个插入和查询的,那么,这样的订单表就不适合使用页锁。 但是,如果 orders 表中包含旧订单,每晚均用白天下的所有订单进行更新,这样的表适合使用页锁。 在这种情况下,用来访问表的隔离级别 的类型是重要的。 有关更多信息,请参阅隔离级别