




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开发一部系列培训 数据库并发访问控制 2 提纲 数据库并发访问控制机制如何提高数据库的并发处理能力 3 数据库并发访问控制机制 保持数据库一致性 c 的必要条件通过在要访问的数据库对象上加锁来控制数据库对象的访问 4 数据库并发访问控制机制 锁粒度行 row 块 block 仅针对mdc表 数据分区 datapartition 仅针对rangepartition表 表 table 表空间 tablespace 缓冲池 bufferpool 5 数据库并发访问控制机制 锁尺寸因操作系统平台和目标对象上是否已经加锁而不同在32位操作系统平台上72byte 目标对象上的首个锁 36byte 非目标对象上的首个锁 在64位操作系统平台上112byte 目标对象上的首个锁 56byte 非目标对象上的首个锁 6 数据库并发访问控制机制 锁模式in intentnone 加锁者可以读取目标表上的任何数据 包括未提交的数据 但不能更新 其他的并发应用可以读取或者更新该表的数据 锁定的对象可能为 块 数据分区 表 表空间is intentshare 加锁者可以读取锁定目标表中的数据 但不能更新 其他的并发应用可以读取或者更新该表的数据 锁定的对象可能为 块 数据分区 表 表空间ns nextkeyshare 加锁者和所有其他的并发应用可以读但不能更新锁定行 在应用的隔离级别是rs或者cs的地方 会在表行上申请ns锁代替s锁 ns锁模式不再用作下一键锁定 为了最小化cs或rs扫描时下一键锁定的影响 通常使用ns锁代替s锁 锁定的对象只能为行 s share 加锁者和所有其他的并发应用可以读但不能更新锁定行 锁定对象可能为 行 块 数据分区 表ix intentexclusive 加锁者和所有其他的并发应用都可以读或者更新目标表中的数据 锁定对象可能为 块 数据分区 表 表空间 7 数据库并发访问控制机制 锁模式six sharewithintentexclusive 加锁者可以读取或者更新目标表的数据 其他并发应用只能读取目标表的数据 锁定对象可能为 块 数据分区 表 u update 加锁者可以更新目标表中锁定的数据 其他并发应用可以读取该锁定的数据 但不可更新 锁定对象可能为 行 块 数据分区 表 nw nextkeyweakexclusive 当在索引中插入一行时 会在下一行上申请一个nw锁 对于type 2类型的索引而言 只有下一行正在被rr隔离级别的扫描锁定时才会发生 加锁者可以读取但不能更新锁定的内容 除了与w锁和ns锁兼容之外 该模式与x锁类似 锁定对象只能为行 x exclusive 加锁者可以读取或者更新锁定的数据 其他应用只能通过脏读的方式读取该锁定内容 锁定对象可能为 行 块 数据分区 表 缓冲池w weakexclusive 当在一张未定义type 2类型索引的表上插入一行时 会申请该锁 在唯一索引中插入一行时也会申请该锁 加锁者可以修改锁定行的内容 其他应用只能通过脏读的方式访问锁定内容 锁定对象只能为行 除了与nw锁兼容之外 该模式的锁与x相同 8 数据库并发访问控制机制 锁模式z superexclusive 只有在一定的条件下才会申请该锁 比如当执行alter drop表命令时 或者执行create drop索引命令时 或者执行某种特殊类型的reorg操作时 其他并发应用不可以任何形式访问该表的数据 锁定对象可能为 数据分区 表 表空间 9 数据库的并发访问控制机制 锁兼容性 10 数据库的并发访问控制机制 锁转换从低级别的锁模式转换到较高级别的锁模式由同一应用进行申请一个应用在同一时刻在一个对象上只能持有一种模式的锁比如 更新过程中由u锁转换为x锁 11 数据库的并发访问控制机制 锁升级当锁资源占用的内存总量 locklist maxlocks 100时会引起锁升级较细锁定粒度的锁升级到更粗粒度的锁直至锁资源占用的内存量 locklist maxlocks 100锁升级极大地扩充了数据的锁定范围 极易产生锁等乃至死锁 12 数据库并发访问控制机制 决定锁定粒度与锁定范围的主要因素应用预编译或者绑定到数据库时使用的隔离级别uncommittedread ur 不加锁 可以读取脏数据cursorstability cs 只对当前扫描到的数据行加临时锁readstability rs 对扫描过的数据行加临时锁 对满足查询条件的记录加持久锁repeatableread rr 对扫描过的数据行加临时锁 对满足查询条件的记录以及紧邻查询条件的记录加持久锁优化器选择的执行计划ixscan tbscannljoin hsjoin msjoin表定义时指定的locksize属性locklist maxlocks 100的值 13 数据库并发访问控制机制 影响数据库并发的罪魁祸首锁等一般锁等 等待时间locktimeout 死锁 并发执行的两个或者多个事务之间互相等待或者级联等待 14 提纲 数据库并发访问控制机制如何提高数据库的并发处理能力 15 如何提高数据库的并发处理能力 在保证数据正确性的前提下采用尽可能低的隔离级别was上的应用默认隔离级别为rs 如有特殊需求 可以调整默认隔离级别或者在sql语句上添加with语句指定隔离级别存储过程使用绑定选项确定隔离级别缺省情况下使用注册变量db2 sqlroutine prepopts指定的隔离级别存储过程内部的sql可以通过在语句级添加with语句执行隔离级别 16 如何提高数据库的并发处理能力 减少锁定时间使用小事务使锁定级别高的语句尽可能靠近事务结束语句使用乐观锁 从9 5版本开始 db2为乐观锁实现提供了很好的支持 通过在初始选择列表上使用rid bit rid 和rowchangetoken或者rowchangetimestamp表达式来支持乐观并发控制 以允许将原始值作为搜索条件检查数据是否已经发生变化 rowchangetoken bigint 按页生成 同一页面上的记录该取值相同 rowchangetimestamp timestamp 按行生成 但需要在目标表上专门定义类型为timestamp的列 generatedalwaysforeachrowonupdateasrowchangetimestamp 17 如何提高数据库的并发处理能力 乐观锁的例子 createtablet i idint i colaint ts updatetimestampnotnullgeneratedalwaysforeachrowonupdateasrowchangetimestampinsertintot i id i cola values 1 1 2 2 3 3 4 4 5 5 使用说明 selectrid t rowchangetimestamp i id i colafortfromtwherei id 1 记录下rid和rowchangetimestamp的值 假设为vi rid和vts updateupdatetseti cola new valwhererid t vi ridandrowchangetimestampfort vts update 几点注意 1 select和update之间如果执行reorg操作 ri发生变化会导致更新失败2 如果使用rowchangetoken方式 其他事务引起的同页面上数据的修改会导致更新失败 18 如何提高数据库的并发处理能力 通过设置如下注册变量启用延迟锁定db2setdb2 skipinserted ondb2setdb2 skipdeleted ondb2setdb2 evaluncommitted on注 db29 5之前 以上注册变量的缺省值为off 从9 5开始 默认开启延迟锁定 19 如何提高数据库的并发处理能力 启用延迟锁定的影响 20 如何提高数据库的并发处理能力 启用cur commit 9 7开始支持 读取当前已落实的数据 只对配置参数更新后产生的数据访问有效 与withur的相同点都不会对目标数据对象加锁与withur的区别withur会读取到脏数据 但启用cur commit后读取到的数据都是已经提交的数据启用cur commit后会占用更多的日志空间 21 如何提高数据库的并发处理能力 为sql量身定做索引 引导优化器选择索引路径以where条件中区分度大的列为前导列建立索引当数据量变化幅度较小时通过执行runstats收集准确的统计信息 db2look 必要的情况下导入虚假的统计信息 上线初期 数据量变化幅度很大时需要 对数据量变化幅度很大的表启用volatile属性 22 如何提高数据库的并发处理能力 通过hint方式为表关联操作选择nljoin ixscan的执行路径hsjoin msjoin的处理机制决定了这两种关联方式必须经历tbscan的过程 db2setdb2 o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 党章考试题及答案
- 2025四川绵阳三台县司法局招聘编外聘用人员8人考试参考题库附答案解析
- 2025年开封市教育体育局局属中小学校公开选调教学名师19人考试参考题库附答案解析
- 2025浙江宁波象山影视城文化产业集团有限公司第三期招聘工作人员1人笔试备考题库及答案解析
- 2025甘肃人力委托招聘政务服务热线12345坐席笔试模拟试题及答案解析
- 2025四川凉山州金阳县卫生健康局招聘医疗卫生辅助岗人员4人考试参考题库附答案解析
- 2025天津新誉资产管理有限公司所属运营类企业人才市场化招聘6人笔试备考试题及答案解析
- 2025贵州观山湖区第十中学临聘教师招聘笔试模拟试题及答案解析
- 农村金融服务合规性提升方案
- 手机应用软件测试与发布流程手册
- 2025安徽龙亢控股集团有限公司招聘招聘21人笔试参考题库附带答案详解析集合
- 国企职称评聘管理制度
- T/CNCA 048-2023矿用防爆永磁同步伺服电动机通用技术条件
- 安装家具合同协议书范本
- 月饼代销合同协议书
- 购买肉牛合同协议书
- 移动式压力容器安全技术监察规程(TSG R0005-2011)
- JT-T 495-2025 公路交通安全设施产品质量检验抽样方法
- 《废旧锂电池的回收与再利用》课件
- 2025小学道德与法治教师课标考试模拟试卷附参考答案 (三套)
- 中国卒中患者高血压管理专家共识(2024)解读
评论
0/150
提交评论