免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3133 | 回复: 14
打印 上一主题 下一主题

关于 Informix 的锁. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-27 12:37 |只看该作者 |倒序浏览
Informix 的锁有几种呢?
最近与人讨论这个问题,我个人认为是两种.

论坛徽章:
0
2 [报告]
发表于 2004-08-27 13:07 |只看该作者

关于 Informix 的锁.

从锁的范围说有row lock和page lock,有些操作是锁整张表,有些是锁整个数据库。
从锁的种类来说多了:SHARED锁,EXCLUSIVE锁,PROMOTABLE锁。
精华区有篇《Informix數據庫的鎖技術》

个人觉得锁的设计原理各个数据库大同小异,最好看看有关数据库原理设计的书。

论坛徽章:
0
3 [报告]
发表于 2004-08-27 13:44 |只看该作者

关于 Informix 的锁.

原帖由 "zzjijun" 发表:
从锁的范围说有row lock和page lock,有些操作是锁整张表,有些是锁整个数据库。
从锁的种类来说多了:SHARED锁,EXCLUSIVE锁,PROMOTABLE锁。
精华区有篇《Informix數據庫的鎖技術》

个人觉得锁的设计原理各个..........

我认为锁的级别与锁的种类是不同的,而种类只有共享和排它之分.

论坛徽章:
0
4 [报告]
发表于 2004-08-27 14:04 |只看该作者

关于 Informix 的锁.

要讨论这个问题先把你的“锁的种类”给个定义。

我摘录一段锁的属性的论述吧:
“所有的锁都有下列基本属性:
Object:object 属性标识了要锁定的数据资源。
Size:size 属性指定要锁定的数据资源部分的物理大小。锁并不总是必须控制整个数据资源。
Duration:duration 属性指定了锁被持有的时间长度。事务的隔离级别通常控制了锁的持续时间。
Mode:mode 属性指定了锁的拥有者所允许的访问类型,以及对锁定数据资源的并发用户许可的访问类型。这个属性通常称为锁状态。 ”

在锁问题里还要考虑锁兼容性、锁转换、锁升级。这样就需要有意向锁,PROMOTABLE锁。

论坛徽章:
0
5 [报告]
发表于 2004-08-27 14:39 |只看该作者

关于 Informix 的锁.

原帖由 "zzjijun" 发表:
要讨论这个问题先把你的“锁的种类”给个定义。

我摘录一段锁的属性的论述吧:
“所有的锁都有下列基本属性:
Object:object 属性标识了要锁定的数据资源。
Size:size 属性指定要锁定的数据资源部分的物理大..........

锁的种类即lock types.而级别则是 lock levels.

论坛徽章:
0
6 [报告]
发表于 2004-08-27 16:20 |只看该作者

关于 Informix 的锁.

在《Simplified Chinese IBM Informix Guide to SQL- Syntax, Version 9.4 (G152-0558-00)》中:
Informix支持3种锁的种类:
共享
互斥
可提升/更新

论坛徽章:
0
7 [报告]
发表于 2004-08-27 17:03 |只看该作者

关于 Informix 的锁.

原帖由 "zzjijun" 发表:
在《Simplified Chinese IBM Informix Guide to SQL- Syntax, Version 9.4 (G152-0558-00)》中:
Informix支持3种锁的种类:
共享
互斥
可提升/更新

promotable lock
首先,并非全线支持。另外,它不过是在不同的过程扮演不同的角色而已。

论坛徽章:
0
8 [报告]
发表于 2004-08-27 17:26 |只看该作者

关于 Informix 的锁.

------摘录-----
锁兼容性
如果数据资源上的一种锁状态允许在同一资源上放置另一个锁,就认为这两种锁(或两种状态)是兼容的。每当一个事务持有数据资源上的锁,而第二个事务请求同一资源上的锁时,数据库管理器检查两种锁状态以确定它们是否兼容。如果锁是兼容的,则将锁授予第二个事务(假定没有其它事务在等待该数据资源)。但是,如果锁不兼容,则第二个事务必须等待,直到第一个事务释放它的锁为止,然后才可以获取对资源的访问权并继续处理。


锁转换
当事务尝试访问它已经持有锁的数据资源,并且所需的访问模式需要比已持有的锁更严格的锁时,则所持有的锁的状态更改成更严格的状态。

论坛徽章:
0
9 [报告]
发表于 2004-08-27 17:27 |只看该作者

关于 Informix 的锁.

也许你认为划分锁种类条件只包含对锁对访问对象的控制。但如果按你的分类无法正确描述Informix中锁兼容和锁转换的问题。可见在Informix中锁种类划分的条件要多一些因素。

举个例子照你的分类描述Informix的锁兼容用一张2*2的表,如下
--------共享   互斥
共享
互斥


而实际上至少应该是3*3的表,如下
---------共享    可提升    互斥
共享
可提升
互斥

论坛徽章:
0
10 [报告]
发表于 2004-08-27 17:28 |只看该作者

关于 Informix 的锁.

照你这样说共享锁和互斥锁也是“不过是在不同的过程扮演不同的角色而已”。

不明白你说的并非全线支持是什么意思,7版本和9版本在锁种类上没有什么变化。7版本的文档可以参见《Guide to SQL: Tutorial, December 1999》

讨论问题一定要遵循统一的定义和约定。你可以给出你认为的锁种类的定义。既然用了Informix产品,Informix产品中锁种类说明就应该以informix官方文档为标准。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP