使用 LOCK MODE 关键字更改表的锁定粒度。
LOCK MODE 子句
粒度 作用
PAGE 在一整页的行上获取并释放一个锁
这是缺省锁定粒度。当您知道行分组到各页所依照的顺序与您正在用来处理所有行的顺
序相同时,页级别锁定就特别有用。例如,如果您依照与表的集群索引相同的顺序来处
理表的内容,页锁定就特别合适。
ROW 在每一行上获取并释放一个锁
行级别锁定提供最高级别的并发性。只有具有行级别锁定的表才支持 LAST
COMMITTED 功能,当有另一个会话在您尝试读取的行上持有互斥锁时,它会提高
Committed Read 和 Dirty Read 隔离级别的性能。然而如果您正在一次使用许多行,则
锁管理开销可能变得很重要。根据您的数据库服务器的配置,也可以超出可用锁的最大
数目。
以下语句更改将 customer 表的锁定方式更改为页级别锁定:
ALTER TABLE customer LOCK MODE(page);
下一示例将 customer 表的锁定方式更改为行级别说点:
ALTER TABLE customer LOCK MODE(row);
优先顺序和缺省行为
ALTER TABLE 语句中的 LOCK MODE 设置优先于 IFX_DEF_TABLE_LOCKMODE 环境变量
和 DEF_TABLE_LOCKMODE 配置参数的设置。有关 IFX_DEF_TABLE_LOCKMODE 环境变
量的信息,请参阅 《GBase 8s SQL 指南:参考》 。有关 DEF_TABLE_LOCKMODE 配置参数的信息,请参阅 GBase 8s 管理员参考 。