| 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 性能指南 。