`

SEQUENCE的CACHE(缓存)

    博客分类:
  • DB2
阅读更多
参考文献
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/r0004201.htm

CACHE的主要用途是
在获取第一次的sequence时,预先创建出一部分sequence并存放在缓存中

例如:
CREATE SEQUENCE
SEQ_UNIQUEKEY AS INT
START WITH 1
INCREMENT BY 1 
MINVALUE 1
MAXVALUE 99999999
CYCLE
CACHE 300
ORDER;

当创建成功时,在缓存中已经存在了1~300号sequence,每次执行NEXTVAL时,都会使用缓存中的seq。当seq增加到300时,下一次的NEXTVAL命令就会重新产生301~600号seq并存放于缓存。

若,当前连接中断,并重新连接数据库时,NEXTVAL命令取得的值就是在缓存中的最小值。
例如:
NEXTVAL.......(执行100次,下次seq为101)
执行,commit,disconnect命令断开连接(或者发生异常,强制commit)
则,下次连接到数据库后,执行NEXTVAL命令取得的seq就为301,101~300号自动作废。
分享到:
评论

相关推荐

    Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    其中,sequence_name 是 SEQUENCE 的名称,increment 是每次增加的值,start_value 是起始值,max_value 是最大值,cache_size 是缓存大小。 例如,创建一个名为 S_S_DEPART 的 SEQUENCE,初始值为 1,增加值为 1,...

    sequence等同于序列号

    此外,还可以选择是否让`sequence`达到最大值后重新开始(`CYCLE`),以及是否启用缓存以提高性能(`CACHE`)。 #### 三、使用CURRVAL与NEXTVAL 一旦定义了`sequence`,就可以通过`CURRVAL`和`NEXTVAL`获取当前值...

    oracle中sequence介绍及应用

    创建一个名为`SEQ_TEST`的序列,初始值为1,每次递增1,无最大值限制,不循环,不缓存。 ```sql CREATE SEQUENCE SEQ_TEST MINVALUE 1 NOMAXVALUE START WITH 1 INCREMENT BY 1 NOCYCLE NOCACHE; ``` #### 三、...

    oracle中的sequence实现主键增长

    - `CACHE`用来设置缓存的序列数,提高性能,但可能导致序列跳跃(在系统异常或数据库重启后)。 2. **Sequence的使用**: - `NEXTVAL`:获取序列的下一个值并增加序列。 - `CURRVAL`:返回当前序列的值,必须在...

    Sequence简单介绍.pdf

    -- 缓存10个值 ``` - **使用序列**: `NEXTVAL`和`CURRVAL`是两个重要的关键字,前者返回序列的下一个值并将其自增,后者则返回序列的当前值。 ```sql SELECT emp_sequence.NEXTVAL FROM DUAL; SELECT emp_...

    ORACLE SEQUENCE的简单介绍

    `SEQUENCE_CACHE_ENTRIES` 参数可以设置能够同时被缓存的 Sequence 数量。如果需要删除 Sequence,可以使用 `DROP SEQUENCE` 命令。 ```sql DROP SEQUENCE order_seq; ``` #### 七、Oracle 中实现主键的自动增加 ...

    oracle 主键自增 sequence

    - **NOCACHE**:表示不缓存 `Sequence` 的值,每次调用都会生成新的值。 #### 三、使用 Sequence 生成主键值 为了使用 `Sequence` 为表中的主键字段赋值,可以通过以下步骤进行: 1. **创建表**: ```sql ...

    oracle 存储过程使用 sequence

    Oracle提供了`CACHE`选项来缓存Sequence值,提高性能,但可能会导致序列号不连续。如果不使用`CACHE`,每次请求都会从数据库获取新的值,保证了序列的唯一性但可能降低性能。 在提供的压缩包文件`07_调整级别示例...

    使用JDeveloper开发WEB应用时同时使用Oracle的sequence和trigger

    例如,通过设置`CACHE 50`可以缓存一定数量的sequence值,减少对数据库的频繁访问。 7. **安全性与维护**:确保sequence和trigger的权限设置合理,防止未授权的访问和修改。定期审查和优化这些对象,以适应业务的...

    序列cache对性能的影响

    序列的缓存(Cache)设置是影响其性能的关键因素之一,尤其是在高并发性的环境中。序列缓存是预先从序列中获取并存储在内存中的一组数值,以减少磁盘I/O操作,提高数据插入速度。本篇将详细讨论序列缓存对性能的影响...

    主键生成器sequence

    2. **CACHE与NOCACHE**:`CACHE`选项可以提高性能,但若数据库实例异常关闭,则可能丢失缓存中的值;`NOCACHE`则更安全,但性能稍低。 3. **查询当前值**:可以通过`LAST_NUMBER`属性来查看序列当前的值。 ```sql ...

    ARM Linux Boot Sequence

    在检查并确保运行在链接地址上(如果不在,则进行修正)后,会进行内核解压工作的准备工作,包括清零BSS段以及调用cache_on函数来打开缓存,从而为内核解压做准备。 5. MMU与缓存的启用 在解压内核之前,必须设置好...

    Hibernate的缓存应用

    ### Hibernate的缓存应用 #### 一、概述 在现代软件开发中,为了提升系统性能与响应速度,缓存技术的应用越来越广泛。其中,Hibernate作为Java领域内一款优秀的对象关系映射(ORM)框架,其缓存机制尤其受到开发者...

    详解ORACLE SEQUENCE用法

    `SEQUENCE_CACHE_ENTRIES`参数可以设置同时被缓存的Sequence数目,调整这个参数可以影响整个数据库的Sequence性能。 总结,Oracle Sequence是生成唯一序列号的重要工具,通过灵活地配置和使用,可以满足各种业务...

    京东金融数据库开发管理规范-SEQUENCE

    - `cache`用于让序列预生成一些序列号缓存在内存中。 - `cycle`用于指定序列到达最大值时从最小值开始循环。 - **删除序列的格式规范**: - 删除序列时必须带上属主的名字。 ```sql drop sequence b2cbill.seq...

    Oracle、DB2、PostgreSQL之Sequence总结

    这里定义了一个名为`seq_test`的Sequence,最小值为10000,最大值为99999999999999999,初始值为20000,每次递增1,缓存20个值,且循环使用(CYCLE)。 二、Sequence的使用 在Oracle中,可以通过`seq_test.nextval`...

    SEQUECE唯一健值的使用

    - `CACHE`:预取值的数量,预取的值存储在缓存中,这样可以减少与数据库的交互次数,提高性能。但是,如果在缓存中的值未被全部使用时发生系统崩溃,这些值可能会丢失。如果不想使用缓存,则使用`NOCACHE`。 #### ...

    分享ORACLE SEQUENCE跳号总结

    当Oracle的共享池(SHARED_POOL)被刷新时,如果序列有缓存(CACHE),未被使用的缓存值将丢失,从而在下一次请求时产生较大的跳跃。例如,设置序列缓存为40,然后刷新共享池,未被使用的序列值将不再有效。 ```...

    oracle自动增长列

    - `CACHE cache_size`: 指定预分配并缓存的序列号数量。如果数据库出现故障,则可能会丢失已经缓存但尚未使用的序列号。 例如,根据题目给出的部分内容,创建名为`person_id`的序列: ```sql CREATE SEQUENCE ...

Global site tag (gtag.js) - Google Analytics