GBASE南大通用技术分享:活动集和并发

当仅一个程序正在使用数据库时,活动集的成员不可更改。大多数个人计算机都是这种情 况,且是要考虑的最简单情况。但必须为了在多编程系统中使用来设计一些程序,在此, 两个、三个或几十个不同的程序可同时在相同的表上工作。

在您的游标是打开的时,当其他程序可更新表时,活动集的思路用处不大了。您的程序在 某一时刻仅看到一行数据,但表中的所有其他行可能正在更改。 

在简单查询的情况下,当数据库服务器仅持有活动集的一行时,任何其他行都可更改。在 您的程序访存行之后的那一刻,另一程序可删除同一行或更新它,于是,如果在此检查它, 它不再是活动集的一部分。

当在临时表中保存活动集或它的一部分时,旧数据可出现问题。即,从其派生活动集行的 实际的表中的行可更改。如果真是这样,某些活动集行不再反映当前的表内容。

最初这些想法令人不安,但只要您的程序仅读取数据,就不存在旧数据,更确切地说,所 有数据都同样陈旧。活动集是数据在某一时刻的快照。第二天行就不一样了;如果它在下 一毫秒也不一样,倒无所谓。换言之,在程序正在运行时发生的更改,与该程序终止的那 一刻保存和应用的更改之间,没有实际的差异。

旧数据可导致问题的唯一时刻,是当程序打算使用输入的数据来修改同一数据库时;例如, 当银行业应用程序必须读取账户余额、更改它并将它写回时。通过 SQL 程序修改数据 讨 论修改数据的程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值