比如对一个表中的A记录的B字段进行操作--------这个操作是并发的!
这个操作过程是这样的:
1.先取出A记录B字段。
2.根据我们的大量计算公式----这个公式是非常复杂的,无法在sql中计算只能取出数据在进行计算!
3.这时在将计算的结果写入A记录B字段!存在的问题:
如果两个客户同时取出A记录B字段的数据,这时它们的数据都是一样的了,这样进行计算后的结果在写入数据库-----它的数据就是脏数据,应该是一个串行过程序,但是我们又要求大并发,响应数据快!我不知道这样问题怎么解决,请各位高手指点一下,我试过很多方案都不行,很难做到大并发!
这个操作过程是这样的:
1.先取出A记录B字段。
2.根据我们的大量计算公式----这个公式是非常复杂的,无法在sql中计算只能取出数据在进行计算!
3.这时在将计算的结果写入A记录B字段!存在的问题:
如果两个客户同时取出A记录B字段的数据,这时它们的数据都是一样的了,这样进行计算后的结果在写入数据库-----它的数据就是脏数据,应该是一个串行过程序,但是我们又要求大并发,响应数据快!我不知道这样问题怎么解决,请各位高手指点一下,我试过很多方案都不行,很难做到大并发!
解决方案 »
- ora-22922 nonexistent LOB value
- sql/plus语句问题求教
- : 小妹想向数据库方向发展,将来做个DBA,我该从什么方向去努力呢,还有该从什么什么样的职位做起发展更好啊。
- Check 约束的写法
- 目前是在window下的Oracle9i进行,待正式运行之后,需要移植到AIX下,不知如何移值?问题解决马上结账,绝不食言!!
- 限制表的记录条数
- 求助Oracle8在Windows2000Server上安装问题!!!
- 请问存储过程中如何读取临时表的数据?
- 关于logmnr的问题
- 千万火急求救,高分赠送,怎样备份oracle数据库所有对象(包括表,存储过程,函数,触发器…)
- 高分求救一oracle数据库的启动问题????
- 一个简单的小问题,关于初始化参数设置,请内行人帮忙!(顶者有分)
每条记录的编号,只要有新的记录,id号就自动加1用序列来实现
--建序列:
create sequence seq_name
increment by 1
start with 1
maxvalue 99999999999
nocycle
cache 10--调用:
insert into table(id,name) values(seq_name.nextval,'名字');
然后进行修改,修改完以后,将a记录里面的某个扳本控制字段加一
这样另外一个用户如果仍然对a记录要进行修改时,由于a记录的版本已经加了一,与此用户先前取得的版本不一致,那么此用户就无权修改