oracle id序列化,oracle的序列化和索引查找

-- oracle的序列化 一組有序有規則的數字,常常用來做為表的id(oracle中主鍵沒有自增長)

--sequence語法 create sequence 序列名稱

start with n  從n開始

increment by i 每次增長i,相當於步長

minvalue  最小值

maxvalue 最大值

cycle/ nocycle 循環/不循環

cache 10,意思是游標跳到當前步時候,往后緩存10步.

currval 當前的值 (游標最開始默認的位置是-1,所以在使用前調用一次nextval)

nextval 下一個值.

create sequence mysequence

start with 1 increment by 2 minvalue 1 maxvalue 9 cache 5 cycle;

select mysequence.nextval from dual;

select mysequence.currval from dual; -- 1,3,5,7,9

--實際開發中我們都是寫下面的,給的是默認值,

create sequence se2;

create table tb (

se2NUM varchar2(20),

NUM varchar2(20)

);

-- 我們先利用這個序列來往一個表中插入大量數據,為后面的索引查找做准備

declare

begin

for i in 0..5000000 loop

insert into tb values('tb'||se2.nextval,'tb'||i);

end loop;

commit;

end;

-- 索引

--查詢這500萬條數據中的某一條,我們就要用索引  --- create index on 表名 (列名)

1,--單列索引的使用

select * from tb where tb.num = 'tb'||250000;--這是不用索引(我的電腦用了,26,458毫秒)

create index index1 on tb (num);

select * from tb where tb.num ='tb'||250000;--(0.089毫秒,這查詢效率)

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

2,多列索引的使用,效率更高

select * from tb where tb.se2num='tb'||400000 and tb.num='tb'||400000;--未使用多列索引(5,872)

create index index2 on tb(se2num,num);

select * from tb where tb.se2num='tb||400000' and tb.num='tb||400000';--創建了雙列索引后查找的()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值