|
>对15楼问题:
>以前没玩过Oracle,还真不知道这些分别。
>但是,对于Oracel事务的设计,我有点难以接受。事务按定义不就是要保证我若干运算能同进同退吗?如果是我改别人也能改,理论上是不能滚回的。
>这里,如果Oracle默认是能读,我可以接受,如果默认使能写,有点问题,绝对逻辑问题。
>同时,按照LZ的观察:MS SQL已经能做到Row Level Lock,因为
> select * from customers where customerid='ALFKJ'; 有问题
> select * from customers where customerid='ALFKI'; 没问题
关于这个问题,oracle的查询仅仅的结果仅仅针对的当时时刻的结果,假设你做一个记数查询,需要5分钟得出结果,并且前台还对这个表进行大量DML:
select count(*) from bigtable
在oracle下这个结果是确定的,就是你发select的时刻的结果,如果执行不下去,多半是回滚段太小.
而ms sql就不同结果,是不确定的.
要得到正确结果,必须lock 表,再进行计算.
所以我一直认为oracle的一致性读取是一个很优秀的设计,特别在大并发用户的情况下. |
|