zoukankan      html  css  js  c++  java
  • Oracle中的序列sequence

    首先看一个定义好的序列

    create sequence TUSERQUESSEQ  //创建一个名为TUSERQUESSEQ的序列
    minvalue 1  //该序列的最小值为1
    maxvalue 9999999  //最大值为9999999
    start with 1  //从1开始自增
    increment by 1  //每次增加1
    cache 20

    cycle  //如果增加到了最大值9999999就重新循环

    order;

    下面说一下cache选项:

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

    order选项:

    order选项解释的出处[http://topic.csdn.net/u/20070706/13/a0d56107-8aeb-47df-bdb4-9c36dc998171.html]

    1.保证序列号按请求顺序产生.如果你想以序列号作为timestamp(时间戳)类型的话,可以采用该选项.对于将序列用于生成主键来说,约定顺序通常并不重要.

    2.ORDER和NOORDER的区别表现在并行服务和独占服务之间.打个比方:双CPU对同一个oracle  DB中的ABC sequence申请序号时,这时就有两个请求A和B,假设A请求在前B在后,现在ABC序列中的值为9.如果添加了ORDER选项,那么一定是A请求到9,B请求到10.但如果没有添加此选项,则有可能B请求到9,A请求到10. 在单CPU中,可以用Java摸拟多线程作测试

    --------------------------------------------------------------------------------------------------------------------------

    sequence不属于某个表,也不属于某个字段,sequence仅仅属于某个用户.其实在创建了sequence后,每个表都可以使用这个sequence,但是这样会引起应用的很多麻烦.因此,建议每个表都使用一个sequence

    查看sequence:select * from user_sequences

    删除sequence:drop sequence 序列名称

     

  • 相关阅读:
    Laravel 404错误,Laravel根目录可以访问,非根目录就会出现404 页面找不到的错误
    laravel 终端自动创建控制器
    在 Windows 中安装 Laravel 5.1.X
    CentOS 6.5 Apache搭建虚拟主机
    Host '192.168.1.21' is not allowed to connect to this MySQL server
    用数组实现栈(C++)
    C++入门级小算法
    一些简单小算法
    C++中的大数乘的实现
    指针数组和数组指针
  • 原文地址:https://www.cnblogs.com/shihujiang/p/2542963.html
Copyright © 2011-2022 走看看