zoukankan      html  css  js  c++  java
  • 关闭数据库方式对sequence的影响

    create sequence seq1  
    minvalue 1  
    maxvalue 99999999999999999999  
    start with 1  
    increment by 1  
    cache 1000; 
    
     select seq1.nextval into var from dual; 
    
     SQL> select * from user_sequences;
    
    SEQUENCE_NAME			MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
    ------------------------------ ---------- ---------- ------------ - - ---------- -----------
    SEQ1					1 1.0000E+20		1 N N	    1000	   1
    
    SQL>  select seq1.nextval  from dual;
    
       NEXTVAL
    ----------
    	 1
    
    SQL>  select * from user_sequences;
    
    SEQUENCE_NAME			MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
    ------------------------------ ---------- ---------- ------------ - - ---------- -----------
    SEQ1					1 1.0000E+20		1 N N	    1000	1001
    
    SQL>  select seq1.nextval  from dual;
    
       NEXTVAL
    ----------
    	 2
    
    SQL>  select * from user_sequences;
    
    SEQUENCE_NAME			MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
    ------------------------------ ---------- ---------- ------------ - - ---------- -----------
    SEQ1					1 1.0000E+20		1 N N	    1000	1001
    
    此时关闭数据库呢?
    
    SQL> shutdown abort;
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。
    
    Total System Global Area  301305856 bytes
    Fixed Size		    1336148 bytes
    Variable Size		  260050092 bytes
    Database Buffers	   33554432 bytes
    Redo Buffers		    6365184 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL> conn test/test
    已连接。
    SQL> set linesize 200
    SQL>   select * from user_sequences;
    
    SEQUENCE_NAME			MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
    ------------------------------ ---------- ---------- ------------ - - ---------- -----------
    SEQ1					1 1.0000E+20		1 N N	    1000	1001
    
    SQL>  select seq1.nextval  from dual;
    
       NEXTVAL
    ----------
          1001
    
    SQL>  select * from user_sequences;
    
    SEQUENCE_NAME			MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
    ------------------------------ ---------- ---------- ------------ - - ---------- -----------
    SEQ1					1 1.0000E+20		1 N N	    1000	2001
    
    如果指定CACHE值,Oracle就可以预先在内存里面放置一些Sequence,这样存取的快些。cache里面的取完后,Oracle自动再取一组到cache。
    
    使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的Sequence就会丢失。
    
    举个例子:比如你的sequence中cache 100,那当你sequence取到90时突然断电,那么在你重启数据库后,sequence的值将从101开始。
    
    如果是正常关闭呢?
    
    SQL> conn test/test
    已连接。
    SQL> set linesize 200
    SQL> select seq1.nextval  from dual;
    
       NEXTVAL
    ----------
          1003
    
    SQL>  select * from user_sequences;
    
    SEQUENCE_NAME			MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
    ------------------------------ ---------- ---------- ------------ - - ---------- -----------
    SEQ1					1 1.0000E+20		1 N N	    1000	2003
    
    正常关闭数据库sequence正常,不丢失

  • 相关阅读:
    作为一个蒟蒻谈一点考试经验(总结)
    Codeforces Round #517 Div. 2/Div. 1
    Codeforces访问提速攻略(小技巧)
    基数排序模板(基数排序,C++模板)
    k短路模板(洛谷P2483 [SDOI2010]魔法猪学院)(k短路,最短路,左偏树,priority_queue)
    洛谷P4907【CYH-01】小奔的国庆练习赛 :$A$换$B$ $problem$(DFS,剪枝)
    BSGS及扩展BSGS总结(BSGS,map)
    FWT模板(洛谷P4717 【模板】快速沃尔什变换)(FWT)
    洛谷CF264D Colorful Stones(子序列匹配,思维)
    洛谷SP22343 NORMA2
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352011.html
Copyright © 2011-2022 走看看