|
最初由 neilkooo 发布
[B]回楼上的,cache会把sequence缓存在lb cache中,在lb cache中对对象的age out是基于lru算法的,如果cache 20,会把这个序列每次取的时候取出来20个,然后再在lb cache中一个一个用,但是如果在用完这20个之前,这个序列被aged out了,那么没用的那些数就丢掉了,而下次再去从dd取出sequence的时候就会去取上次那20个+1的号为开始,再来20个。这就是产生断号的原因。嗯,总的原因就是:sequence用的不频繁,并且cache之后被aged out.
解决方法一个是不cache,另外一个就是在lb cache中将其钉在lb cache,从而不会aged out。 [/B]
这个只是一方面吧,另外我所有的事务不一定都成功啊,从seq拿出来应该就放不回去了,事务rollback了,这个seq就被浪费了,断点也就产生了 |
|