登录
|
注册
|
QQ账号登录
|
常见问题
联系我们:
我要上传
首页
浏览
幼儿/小学教育
中学教育
高等教育
研究生考试
外语学习
资格/认证考试
论文
IT计算机
经济/贸易/财会
管理/人力资源
建筑/环境
汽车/机械/制造
研究报告
办公文档
生活休闲
金融/股票/期货
法律/法学
通信/电子
医学/心理学
行业资料
文学/艺术/军事/历史
我的淘豆
我要上传
帮助中心
复制
下载此文档
db2与oracle的并发控制(锁)比较.docx
文档分类:
IT计算机
|
页数:约28页
举报非法文档有奖
分享到:
1
/
28
下载此文档
搜索
下载此文档
关闭预览
下载提示
1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
2.下载该文档所得收入归上传者、原创者。
3.下载的文档,不会出现我们的网址水印。
同意并开始全文预览
(约 1-6 秒)
下载文档到电脑,查找使用更方便
下 载
还剩?页未读,
继续阅读
分享到:
1
/
28
下载此文档
文档列表
文档介绍
db2与oracle的并发控制(锁)比较.docx
1引言
在关系数据库(DB2,Oracle,Sybase,Informix和SQLServer)最小的恢复和交易单位为一个事务(Transactions),事务具有ACID(原子性,一致性,隔离性和永久性)特征。关系数据库为了确保并发用户在存取同一数据库对象时的正确性(即无丢失更新、可重复读、不读"脏"数据,无"幻像"读),数据库中引入了并发(锁)机制。基本的锁类型有两种:排它锁(Exclusivelocks记为X锁)和共享锁(Share locks记为S锁)。
排它锁:若事务T对数据D加X锁,则其它任何事务都不能再对D加任何类型的锁,直至T释放D上的X锁;一般要求在修改数据前要向该数据加排它锁,所以排它锁又称为写锁。
共享锁:若事务T对数据D加S锁,则其它事务只能对D加S锁,而不能加X锁,直至T释放D上的S锁;一般要求在读取数据前要向该数据加共享锁,所以共享锁又称为读锁。
2 DB2多粒度封锁机制介绍
DB2支持对表空间、表、行和索引加锁(大型机上的数据库还可以支持对数据页加锁)来保证数据库的并发完整性。不过在考虑用户应用程序的并发性的问题上,通常并不检查用于表空间和索引的锁。该类问题分析的焦点在于表锁和行锁。
DB2可以只对表进行加锁,也可以对表和表中的行进行加锁。如果只对表进行加锁,则表中所有的行都受到同等程度的影响。如果加锁的范围针对于表及下属的行,则在对表加锁后,相应的数据行上还要加锁。究竟应用程序是对表加行锁还是同时加表锁和行锁,是由应用程序执行的命令和系统的隔离级别确定。
DB2表锁的模式
DB2在表一级加锁可以使用以下加锁方式:
表一:DB2数据库表锁的模式
下面对几种表锁的模式进一步加以阐述:
IS、IX、SIX方式用于表一级并需要行锁配合,他们可以阻止其他应用程序对该表加上排它锁。
如果一个应用程序获得某表的IS锁,该应用程序可获得某一行上的S锁,用于只读操作,同时其他应用程序也可以读取该行,或是对表中的其他行进行更改。
如果一个应用程序获得某表的IX锁,该应用程序可获得某一行上的X锁,用于更改操作,同时其他应用程序可以读取或更改表中的其他行。
如果一个应用程序获得某表的SIX锁,该应用程序可以获得某一行上的X锁,用于更改操作,同时其他应用程序只能对表中其他行进行只读操作。
S、U、X和Z方式用于表一级,但并不需要行锁配合,是比较严格的表加锁策略。
如果一个应用程序得到某表的S锁。该应用程序可以读表中的任何数据。同时它允许其他应用程序获得该表上的只读请求锁。如果有应用程序需要更改读该表上的数据,必须等S锁被释放。
如果一个应用程序得到某表的U锁,该应用程序可以读表中的任何数据,并最终可以通过获得表上的X锁来得到对表中任何数据的修改权。其他应用程序只能读取该表中的数据。U锁与S锁的区别主要在于更改的意图上。U锁的设计主要是为了避免两个应用程序在拥有S锁的情况下同时申请X锁而造成死锁的。
如果一个应用程序得到某表上的X锁,该应用程序可以读或修改表中的任何数据。其他应用程序不能对该表进行读或者更改操作。
如果一个应用程序得到某表上的Z锁,该应用程序可以读或修改表中的任何数据。其他应用程序,包括未提交读程序都不能对该表进行读或者更改操作。
IN锁用于表上以允许未提交读这一概念。
DB2行锁的模式
除了表锁之外,DB2还支持以下几种方式的行锁。
表二:DB2数据库行锁的模式
DB2锁的兼容性
表三:DB2数据库表锁的相容矩阵
表四:DB2数据库行锁的相容矩阵
下表是笔者总结了DB2中各SQL语句产生表锁的情况(假设缺省的隔离级别为CS):
每个锁在内存中都需要一定的内存空间,为了减少锁需要的内存开销,DB2提供了锁升级的功能。锁升级是通过对表加上非意图性的表锁,同时释放行锁来减少锁的数目,从而达到减少锁需要的内存开销的目的。锁升级是由数据库管理器自动完成的,有两个数据库的配置参数直接影响锁升级的处理:
locklist--在一个数据库全局内存中用于锁存储的内存。单位为页(4K)。
maxlocks--一个应用程序允许得到的锁占用的内存所占locklist大小的百分比。
锁升级会在这两种情况下被触发:
某个应用程序请求的锁所占用的内存空间超出了maxlocks与locklist的乘积大小。这时,数据库管理器将试图通过为提出锁请求的应用程序申请表锁,并释放行锁来节省空间。
在一个数据库中已被加上的全部锁所占的内存空间超出了locklist定义的大小。这时,数据库管理器也将试图通过为提出锁
db2与oracle的并发控制(锁)比较 来自淘豆网www.taodocs.com转载请标明出处.
猜你喜欢
2024年励志成功的故事
24页
青安岗员材料
8页
2024年励志哲理优美句子8篇
28页
2013.9月护理查房-脓毒症
36页
晁补之词研究的综述报告
2页
春秋时期晋国礼文化研究的中期报告
2页
雪山高二作文
6页
雕塑工艺及安装工程施工组织及实施方案
41页
明代官员治生活动研究的综述报告
2页
2024年助理值班员工作内容(通用20篇)
9页
企业文化
51页
企业改制上市各阶段关注的问题
34页
时序数据挖掘及可视化技术的研究与实践的综述..
2页
早期nCPAP对PS治疗32周内早产儿RDS疗效影响的..
2页
2024年动漫的作文300字4篇
4页
相关文档
更多>>
非法内容举报中心
文档信息
页数
:
28
收藏数
:
0
收藏
顶次数
:
0
顶
上传人
:
精品小课件
文件大小
:
243 KB
时间
:
2021-01-26
相关标签
数据中心规划
水上乐园规划
学科发展规划
主题公园规划
旅游开发规划
中航规划
大学学业规划
企业资源规划
立法规划
惠州地铁规划
计算机原理
PHP资料
linux/Unix相关
C/C++资料
Java
.NET
windows相关
开发文档
管理信息系统
软件工程
网络信息安全
网络与通信
图形图像
行业软件
人工智能
计算机辅助设计
多媒体
软件测试
计算机硬件与维护
网站策划/UE
网页设计/UI
网吧管理
电子支付
搜索引擎优化
服务器
电子商务
Visual Basic
数据挖掘与模式识别
Web服务
网络资源
Delphi/Perl
Python
CSS/Script
Flash/Flex
手机开发
UML理论/建模
并行计算/云计算
嵌入式开发
计算机应用/办公自动化
数据结构与算法
SEO
最近更新
立即高压氧治疗对大鼠局灶性脑缺血后脑水含..
幼儿望庐山瀑布教案
幼儿教案爱惜粮食教案
幼儿教案摘果子
2024年湖北省荆州市纪南生态文化旅游区管委..
2024年土地转让合同(精华)
2024年湖北省武汉铁路职业技术学院社会招聘..
空中交通管理固定资产投资项目管理系统研究..
幼儿大班美工教案
2024年湖北省恩施机场公司招聘2人历年高频难..
幼儿园颜色英语教案
2024年图书室个人工作计划范文三篇
幼儿园简单歌曲教案
移动省公司混合库存管理应用研究及信息化集..
2024年国庆节周记范文
幼儿园游戏教案模板
移动医疗信息采集系统的设计与实现的综述报..
幼儿园教案社会文案
2024年国学作文300字合集七篇
2024年国培计划培训心得体会合集15篇
幼儿园教案平衡
幼儿园教案夏季
2024年围墙施工合同优秀[15篇]
2024年学校燃气安全应急预案
北京101中学2023-2023学年下学期初中八年级..
七年级数学下册压轴题
2022年煤矿个人述职述廉报告范文
茶多酚的含量测定
医用电子直线加速器原理课件
复制以下网址粘贴到浏览器打开
在线
客服
微信
客服
QQ
客服
意见
反馈
手机
查看
返回
顶部