原来是一个单机的oracle,所有的sequence都是默认cache 20的,没有任何问题。前一阵迁移到rac模式下,因为还是cache 20,出现了先插入的记录sequence不一定肯定小,后查入的sequence不一定肯定大的问题。我是想把所有的sequence都改为NOCACHE,但是不知道会不会对性能有什么影响,影响有多大。还请各位高人赐教,或者还有什么其他比较好的方法能解决么?

解决方案 »

  1.   

    cache肯定性能好点(不用每次从数据库去取,一次性取20)。但你的业务要求FIFO(套用下,先到先得),那么只能设置nocache了这个貌似是没办法的。
      

  2.   

    不要依赖sequence去决定记录的先后
      

  3.   

    呵呵,下午做了下测试,在测试机单机上面做的,不是rac
        新建一个表和一个sequence,然后循环一千万次将sequence插入表中作为主键。同时跟踪session。
        第一次cache 20 插入了将近20分钟,完成。
        第二次nocache  插入了1个小时多,700多万条就不动了。做tkprof的时候,服务器down机,alert日志报no enough space。呵呵
        决定还是用cache吧,反查应用,修改应用代码。