GBase 8s SQL 指南:教程 / 对多用户环境编程 |
锁名称 | 描述 | 通常放置该锁的语句 |
---|---|---|
S | 共享锁 | SELECT |
X | 排他锁 | INSERT、UPDATE、DELETE |
U | 更新锁 | 在更新游标中的 SELECT |
B | 字节锁 | 更新 VARCHAR 列的任何语句 |
此外,锁表可能存储意向锁。意向锁可为意向共享的(IS)、意向排他的(IX)或意向共享排他的(SIX)。意向锁是当需要锁定较低颗粒度对象时,数据库服务器(锁管理器)放置在较高颗粒度对象上的锁。例如,当用户以“共享的”锁定模式锁定行或页时,数据库服务器在该表上放置 IS(意向共享的)锁来提供立即的检查,检查没有其他用户持有该表上的 X 锁。在此情况下,仅在该表上放置意向锁,而不是放置在行或页上。仅可以行、页或表级别放置意向锁。
用户不对意向锁进行直接的控制;锁管理器在内部管理所有的意向锁。
持有 X 锁 | 持有 U 锁 | 持有 S 锁 | 持有 IS 锁 | 持有 SIX 锁 | 持有 IX 锁 | |
---|---|---|---|---|---|---|
请求 X 锁 | 否 | 否 | 否 | 否 | 否 | 否 |
请求 U 锁 | 否 | 否 | 是 | 是 | 否 | 否 |
请求 S 锁 | 否 | 是 | 是 | 是 | 否 | 否 |
请求 IS 锁 | 否 | 是 | 是 | 是 | 是 | 是 |
请求 SIX 锁 | 否 | 否 | 否 | 是 | 是 | 否 |
请求 IX 锁 | 否 | 否 | 否 | 是 | 否 | 是 |
要获取关于锁定如何影响性能的信息,请参阅您的 GBase 8s 性能指南 。