数据仓库服务 GAUSSDB(DWS)-LOCK:参数说明
参数说明
请求的锁模式/当前锁模式 |
AC CES S SHARE |
ROW SHARE |
ROW EXCLUSIVE |
SHARE UPDATE EXCLUSIVE |
SHARE |
SHARE ROW EXCLUSIVE |
EXCLUSIVE |
ACCESS EXCLUSIVE |
---|---|---|---|---|---|---|---|---|
ACCESS SHARE |
- |
- |
- |
- |
- |
- |
- |
X |
ROW SHARE |
- |
- |
- |
- |
- |
- |
X |
X |
ROW EXCLUSIVE |
- |
- |
- |
- |
X |
X |
X |
X |
SHARE UPDATE EXCLUSIVE |
- |
- |
- |
X |
X |
X |
X |
X |
SHARE |
- |
- |
X |
X |
- |
X |
X |
X |
SHARE ROW EXCLUSIVE |
- |
- |
X |
X |
X |
X |
X |
X |
EXCLUSIVE |
- |
X |
X |
X |
X |
X |
X |
X |
ACCESS EXCLUSIVE |
X |
X |
X |
X |
X |
X |
X |
X |
LOCK的参数说明如下所示:
- name
要锁定的表的名字,可以有模式修饰。
LOCK TABLE命令中声明的表的顺序就是上锁的顺序。
取值范围:已存在的表名。
- ONLY
如果指定ONLY只有该表被锁定,如果没有声明该表和他的所有子表将都被锁定。
- ACCESS SHARE
ACCESS锁只允许对表进行读取,而禁止对表进行修改。所有对表进行读取而不修改的SQL语句都会自动请求这种锁。例如,SELECT命令会自动在被引用的表上请求一个这种锁。
- ROW SHARE
ROW SHARE锁允许对表进行并发读取,禁止对表进行其他操作。
SELECT FOR UPDATE和SELECT FOR SHARE命令会自动在目标表上请求ROW SHARE锁(且所有被引用但不是FOR SHARE/FOR UPDATE的其他表上,还会自动加上ACCESS SHARE锁)。
- ROW EXCLUSIVE
与ROW SHARE锁不同,ROW EXCLUSIVE允许并发读取表,也允许修改表中的数据。UPDATE,DELETE,INSERT命令会自动在目标表上请求这个锁(且所有被引用的其他表上还会自动加上的ACCESS SHARE锁)。通常情况下,所有会修改表数据的命令都会请求表的ROW EXCLUSIVE锁。
- SHARE UPDATE EXCLUSIVE
这个模式保护一个表的模式不被并发修改,以及禁止在目标表上执行垃圾回收命令(VACUUM )。
VACUUM(不带FULL选项),ANALYZE,CREATE INDEX CONCURRENTLY命令会自动请求这样的锁。
- SHARE
SHARE锁允许并发的查询,但是禁止对表进行修改。
CREATE INDEX(不带CONCURRENTLY选项)语句会自动请求这种锁。
- SHARE ROW EXCLUSIVE
SHARE ROW EXCLUSIVE锁禁止对表进行任何的并发修改,而且是独占锁,因此一个会话中只能获取一次。
任何SQL语句都不会自动请求这个锁模式。
- EXCLUSIVE
EXCLUSIVE锁允许对目标表进行并发查询,但是禁止任何其他操作。
这个模式只允许并发加ACCESS SHARE锁,也就是说,只有对表的读动作可以和持有这个锁模式的事务并发执行。
任何SQL语句都不会在用户表上自动请求这个锁模式。然而在某些操作的时候,会在某些系统表上请求它。
- ACCESS EXCLUSIVE
这个模式保证其所有者(事务)是可以访问该表的唯一事务。
ALTER TABLE,DROP TABLE,TRUNCATE,REINDEX,CLUSTER,VACUUM FULL命令会自动请求这种锁。
在LOCK TABLE命令没有明确声明需要的锁模式时,它是缺省锁模式。
- NOWAIT
声明LOCK TABLE不去等待任何冲突的锁释放,如果无法立即获取该锁,该命令退出并且发出一个错误信息。
在不指定NOWAIT的情况下获取表级锁时,如果有其他互斥锁存在的话,则等待其他锁的释放。
- LOCAL COORDINATOR ONLY
声明LOCK TABLE只在接收当前会话请求的CN上执行,而不会下发给其他CN和所有DN。该选项仅针对元数据的操作,以提高效率。
- 该参数仅8.2.0.100以上集群版本支持。
- 当前仅支持ACCESS SHARE锁模式,其他锁模式会报错。
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控
- 如何进行日志采集和转储_日志平台_日志接入_日志转储
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓