1. 程式人生 > >SEQUENCE的CACHE(快取)

SEQUENCE的CACHE(快取)

參考文獻
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號自動作廢。