-- Create table:1.创建一个表
create table ACT_RU_IDENTITYLINK
(
ID_ NVARCHAR2(64) not null,
REV_ INTEGER,
GROUP_ID_ NVARCHAR2(255),
TYPE_ NVARCHAR2(255),
USER_ID_ NVARCHAR2(255),
TASK_ID_ NVARCHAR2(64),
PROC_INST_ID_ NVARCHAR2(64),
PROC_DEF_ID_ NVARCHAR2(64)
)
tablespace FTYTH
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 5
next 1
minextents 1
maxextents unlimited
);
----2.添加注释
comment on table ACT_RU_IDENTITYLINK
is 'XXXX表';
-- Add comments to the columns
comment on column ACT_RU_IDENTITYLINK.REV_
is '单位名称';
comment on column ACT_RU_IDENTITYLINK.TYPE_
is '基本工资*12';
-- Create/Recreate primary, unique and foreign key constraints :3.说明主键和外检
alter table ACT_RU_IDENTITYLINK
add primary key (ID_)
using index
tablespace FTYTH
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 14M
next 1M
minextents 1
maxextents unlimited
);
alter table ACT_RU_IDENTITYLINK
add constraint ACT_FK_IDL_PROCINST foreign key (PROC_INST_ID_)
references ACT_RU_EXECUTION (ID_);
alter table ACT_RU_IDENTITYLINK
add constraint ACT_FK_TSKASS_TASK foreign key (TASK_ID_)
references ACT_RU_TASK (ID_);
-- Create/Recreate indexes :4.创建索引。给这个表中的五个字段都创建了索引
create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK (PROC_DEF_ID_)
tablespace FTYTH
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK (GROUP_ID_)
tablespace FTYTH
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK (USER_ID_)
tablespace FTYTH
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 7M
next 1M
minextents 1
maxextents unlimited
);
create index ACT_IDX_IDL_PROCINST on ACT_RU_IDENTITYLINK (PROC_INST_ID_)
tablespace FTYTH
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 5M
next 1M
minextents 1
maxextents unlimited
);
create index ACT_IDX_TSKASS_TASK on ACT_RU_IDENTITYLINK (TASK_ID_)
tablespace FTYTH
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 4M
next 1M
minextents 1
maxextents unlimited
);
下面是关于索引的理解:
第一个人:索引的作用就在于,为某个字段建立了索引之后,查询这个字段里面的数据的时候,效率更高,也就是快, 比如 create index abc on stu(age); 为stu表的age字段建立了索引,那么查询时,select * from stu where age > 10; 这个时候效率就高,主要体现在where语句,where age > 10 ,将age 作为查询的条件,age又加了索引所以高。 索引使数据库程序无需对整个表进行扫描,就可以在其中找到所需数据,也就是当进行查询时,系统先搜索索引,从中找到数据的指针,再直接通过指针,直接定位到数据上,所以快。 缺点: 还有就是需要注意的,索引是查的效率高了,但是在表中插入或更新数据时,将有额外的操作来维护索引,所以其他的效率低了,还有占用存储空间,还有不要建立过多的索引,过多索引引起反作用!
第二个人:加快查询速度,唯一索引可以确定唯一性等等,但不是索引越多越好
对于查询表越多速度越快,对于经常要更新的表,如果多了,反而会慢,因为要插入之前,先要扫描下索引
第三个人:你查字典,是从第一页开始往后翻呢?还是会按 拼音/部首 索引 查找?
第四个人:数据库会给表里的索引生成索引页 类似字典的目录 加快查询的效率. 不用全表扫描了`. 缺点就是当插入时当索引页不够的话 需要有索引页的IO开销
第五个人:把数据库看作一本书,把索引看作书的目录,这样查找就比较方便,快捷了
第六个人:索引的优缺点
1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:A、正确选择复合索引中的主列字段,一般是选择性较好的字段;B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;8、频繁进行数据操作的表,不要建立太多的索引;9、删除无用的索引,避免对执行计划造成负面影响;以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。