欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle-第13章 序列、索引、同义词

程序员文章站 2022-06-02 13:09:18
...

13.1 序列

 序列是数据库中一种对象,用于生成一串不重复的编号,可以递增或递减。
 最简单的序列结构:create sequence seq_cla;
 一般一个序列只在一个表格中使用,即每个表格会使用一个序列。

例1:
create sequence seq_stu
minvalue 10000最小值
maxvalue 100000最大值
start with 10000起始值
increment by 1增量/补偿,可以输正数或负数,默认是1
cache 20;批量生成多少序列,使用完后再生成一批,用于序列的创建优化。
例2:
create sequence seq_subject
minvalue 1
maxvalue 100000
start with 100
increment by 1
cache 20;

序列的使用:
序列在使用,可以使用序列的两个伪列:currval,nextval。currval取得序列的当前值,nextval取得序列的下一个值。序列创建,currval是没有值,必须先使用nextval;必须先使用nextval获取下一个值,currval才会拥有数值。

例:
select seq_subject.nextval from dual;
select seq_subject.currval from dual;
select * from cla;

13.2 索引

     索引是rowid数据库的一种对象,作用提高数据查询性能。一般针对查询 比较多的列进行创建。有大量重复性的数据的列,不适合创建索引。一个列独立创建索引,也可以同时跟其他列一起创建索引。一般在数据量比较少时,不建议创建索引,在数据量较大时,如果添加索引后,可以明显优化查询性能,这是有效索引。包含大量空值的列不适合创建索引,索引的数据量在2%-4%适合创建索引,索引的缺点会占用空间和降低DML的操作速度。

例:
create bitmap index IDX_MYCLASS_CLANAME on MYCLASS (claname);

13.3 同义词

create [public] synonym 同义词 for [schema.]对象名;把cla表共享给其他用户使用。
例:
create public synonym publiccla for cla;