GaussDB(DWS)常见操作的锁冲突矩阵
【摘要】 GaussDB(DWS)常见操作的锁冲突矩阵
GaussDB(DWS)中表级锁的持锁单位是事物,语句触发持锁动作之后,会一直持有锁,一直到触发锁的语句所在的事物提交
GaussDB(DWS)中执行语句的方式默认是autocommit,即每条语句都是一个事物。
如果客户端传过来一个存储过程调用,那么存储过程中的所有语句都在一个事物里面。
锁名称 | 级别 | 互斥锁级别 | 持锁动作 | 备注 |
ACCESS SHARE | 1 | >=8 | SELECT | |
ROW SHARE | 2 | >=7 | SELECT FOR UPDATE/SHARE | |
ROW EXCLUSIVE | 3 | >=6 | UPDATE/DELETE/INSERT/UPSERT/MERGE INTO | |
SHARE UPDATE EXCLUSIVE | 4 | >=4 | VACUUM(不带FULL选项)/ANALYZE | |
SHARE | 5 | >=4 | CREATE INDEX时候对目标表加锁 | |
SHARE ROW EXCLUSIVE | 6 | >=3 | 无 | |
EXCLUSIVE | 7 | >=2 | VACUUM FULL/CLUSTER/INSER OVERWRITE执行过程中 | 执行过程中加7级锁,在执行结束的瞬间会把锁升级到8级 |
ACCESS EXCLUSIVE | 8 | >=1 | INSER OVERWRITE/ALTER/DROP/TRUNCATE/VACUUM FULL/REINDEX CLUSTER TABLE |
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)