南大通用 GBase 8s 锁 讲解 1.锁机制在多用户数据库系统中用户可以锁定一个对象可以防止其他用户修改锁定的对象多个并发用户访问数据库数据的情况下为了保证数据的完整性锁是必需的锁作为关联到数据项的对象程序可以显示对数据加锁数据库系统也可以隐式的对对象进行加锁2.锁的分类Shared locks: 共享锁多个用户可以同时读取相同的记录Exclusive locks: 排他锁同一时间仅仅有一个用户可以读取相同的记录Promotable (Update) lock: 提升锁可以升级 (从共享锁提升为排他锁) 或者降级Intent lock: 专一锁是一种表级锁标识在该表上有一个游标在读取数据3.锁的类型介绍1共享锁lock-S如果一个对象上没有排他锁则共享锁可以加在该对象上防止其他事务更新数据但同时其他事务可以读取该数据 (其他事务可以加共享锁)多个事务可以在同一个对象上加多个共享锁2排他锁 (lock-X)如果记录上没有任何锁排他锁才可以加在该对象上一旦在记录上加了排他锁则不能在该记录上增加任何锁了直至锁释放防止其他事务读取和更修数据3更新锁 (lock-U)在更新Cursor中使用更新锁由cursors 含有 ‘for update’ 选项执行时产生的 只能在没有排他锁或者更新锁的记录上加更新锁当锁定的记录真正执行的时候更新锁将提升为排他锁4专一锁 (lock-IX or IS)由IDS自动分配如果一条记录上的记录被更新一个排他锁将分配在该记录上同时将该记录的表上自动加上专一锁这能保证没有session可以在该表上增加排他锁只要该表中有记录被增加了排他锁4.锁的兼容矩阵SXSTRUEFALSEXFALSEFALSE5.锁的有效期程序控制数据库锁的有效期当数据库关闭后数据库锁将被释放根据数据库是否使用了事务的情况表锁的有效期不同【如果数据没有使用事务没有事务日志也不使用commit work语句显示对一个表lock当执行unload table时锁将被释放;】当数据库使用了事务事务结束时将释放事务所有的锁 table, row, page, and index locks6.锁的粒度及应用1锁的粒度介绍锁粒度 说明数据库锁 针对整个数据库的锁表锁 针对整个表的锁页锁 针对整页数据的锁行锁 针对一个数据行的锁字节锁 在包含varchar的行上的锁键锁 在索引中的一个键值上的锁2不同锁粒度的应用一般来讲锁的粒度越大并发性就越低程序控制将越简单。数据库锁应用数据库管理活动比如 imports 和 exports表锁应用当整个表或者表的大部分数据需要更新加表级锁效率高页级锁应用当按数据物理顺序进行访问和更新时页级锁效率高行级锁应用OLTP 事务采用行级锁效率高以下语句将隐式的对表加锁直到事务结束后释放:ALTER FRAGMENTALTER INDEXALTER TABLECREATE INDEX (if not using ONLINE keyword)DROP INDEX (if not using ONLINE keyword)RENAME COLUMNRENAME TABLE3哪种锁粒度是最优的取决于事务本身的特点当更新表中相对较小一部分数据的时候采用行级锁将获取最好的性能如果一个事务只访问表中一小部分数据那就采用行级锁如果一个事务频繁的访问整个表的数据设置更粗的粒度比如表级锁如果更新数据库中大部分表的大部分数据的情况下, 采用数据库级别的锁4关于查看锁及事务情况的指令查看表锁模式:oncheck –pt dbname:tablenamedbschema –d dbname –t tablename -ss查看用户进程锁等待情况使用: onstat –u查看锁使用和等待情况使用: onstat -k监控数据库事务及其状态使用: onstat -x

相关新闻

最新新闻

003011001_WPF布局实例

003011001_WPF布局实例

003011001_WPF 布局实例摘要:本文面向 WPF 开发者,系统梳理从入门到工业级的四大布局实战案例——设备登录界面(Grid StackPanel)、设备列表界面(DockPanel 数据绑定)、工业设备操作面板(Canv…

2026/8/5 17:08:29
山海万灵 HarmonyOS 文化知识实战(11):护照收藏与进度统计

山海万灵 HarmonyOS 文化知识实战(11):护照收藏与进度统计

一、把探索行为收敛成一份可恢复的进度文化知识应用中的“收藏”并不只是给卡片切换一个图标。山海万灵把一次神兽发现同时映射到图鉴收录、地域探索比例、护照印章和下次进入时的区域位置。如果这些结果由各页面各自保存,重复发现、切换区域和重启恢复很容易出现不…

2026/8/5 17:08:29
.NET架构进阶:微服务、DDD与云原生核心难点实战解析

.NET架构进阶:微服务、DDD与云原生核心难点实战解析

1. 这篇文章真正要解决的问题 很多 .NET 开发者工作三五年后,会陷入一个尴尬的境地:日常业务开发游刃有余,CRUD、API接口、页面渲染信手拈来,但一旦被问到“如何设计一个高可用的微服务架构”、“如何保证分布式事务的一致性”、“…

2026/8/5 17:08:29
Unity游戏实时翻译实战:XUnity.AutoTranslator部署与原理详解

Unity游戏实时翻译实战:XUnity.AutoTranslator部署与原理详解

1. 项目概述:当Unity游戏遇到语言壁垒作为一名在游戏本地化和工具开发领域摸爬滚打了十多年的老手,我见过太多玩家因为语言问题,与优秀的独立游戏或小众作品失之交臂。对于使用Unity引擎开发的游戏而言,文本资源往往被封装在特定的…

2026/8/5 17:08:29
Pico UnityXR射线交互优化:事件驱动架构与性能调优实战

Pico UnityXR射线交互优化:事件驱动架构与性能调优实战

1. 项目概述:从“能用”到“好用”的交互进化在基于Pico UnityXR开发应用时,手柄的射线交互几乎是所有沉浸式体验的起点。无论是点击UI按钮、抓取远处的物体,还是进行菜单导航,一条从手柄射出的虚拟射线都是用户与虚拟世界沟通的核…

2026/8/5 17:08:29
CAD转PDF怎么转?这7款格式转换工具实测盘点,覆盖批量、打印与在线导出

CAD转PDF怎么转?这7款格式转换工具实测盘点,覆盖批量、打印与在线导出

去年八月,我在整理一份设备改造的竣工图纸,归档要求同时提交DWG源文件和PDF签章版。十几张CAD图纸,每张都要单独导出,图层开关、线宽设置稍有不同,打出来的PDF就粗细不均、标注移位。我当时在电脑和手机上来回倒&#…

2026/8/5 17:03:29