在oracle9i数据库中创建sequence时,cache关键字是什么意思

时间:2021-11-08 09:14:48
我在oracle9i数据库中创建sequence,代码是:
     
        CREATE SEQUENCE my_sequence 
        INCREMENT BY 1
        START WITH 1 
        NOMAXVALUE 
        NOCYCLE 
        NOCACHE ; 
请教大家一下,代码中"NOCACHE"是什么意思?有什么作用?

9 个解决方案

#1


zt
1、Create Sequence 
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, 
CREATE SEQUENCE emp_sequence 
INCREMENT BY 1  -- 每次加几个 
START WITH 1   -- 从1开始计数 
NOMAXVALUE    -- 不设置最大值 
NOCYCLE     -- 一直累加,不循环 
CACHE 10;        --缓存序列个数,有助于提高效率,但可能造成跳号。

- 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。

#2


非常感谢icedut朋友给我的指点,我终于理解了'cache'的意义和作用了。谢谢你--icedut朋友.

#3


我找了几本书 上面都没有写到CACHE 的作用.谢谢 楼上的.呵呵.终于了解了.

#4


学习。。。

#5


我一直也不清楚哈/

#6


缓存~

#7


内事问baidu,外事有google!接分..........

#8


谢谢!>也是刚知道。

#9


谢谢了,看了楼主的问题,解决了我的问题;

#1


zt
1、Create Sequence 
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, 
CREATE SEQUENCE emp_sequence 
INCREMENT BY 1  -- 每次加几个 
START WITH 1   -- 从1开始计数 
NOMAXVALUE    -- 不设置最大值 
NOCYCLE     -- 一直累加,不循环 
CACHE 10;        --缓存序列个数,有助于提高效率,但可能造成跳号。

- 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。

#2


非常感谢icedut朋友给我的指点,我终于理解了'cache'的意义和作用了。谢谢你--icedut朋友.

#3


我找了几本书 上面都没有写到CACHE 的作用.谢谢 楼上的.呵呵.终于了解了.

#4


学习。。。

#5


我一直也不清楚哈/

#6


缓存~

#7


内事问baidu,外事有google!接分..........

#8


谢谢!>也是刚知道。

#9


谢谢了,看了楼主的问题,解决了我的问题;