龙空技术网

资料总结|Oracle基础维护——表、主键、索引、表结构维护手册

波波说运维 1506

前言:

目前我们对“oracle日常维护”都比较讲究,同学们都想要学习一些“oracle日常维护”的相关内容。那么小编也在网摘上网罗了一些关于“oracle日常维护””的相关文章,希望你们能喜欢,大家快快来了解一下吧!

一、项目新建表、主键、索引注意事项需要显示指定表和索引所属表空间表是否分区根据业务实际需求确定,一般单表数据量超过千万以上,并有周期性删除历史数据需求的表需要考虑使用分区表。主键默认就包含了一个唯一性索引,同样需要注意所属表空间问题。

二、建表、主建、索引的操作方法

下面就对上面所说的注意事项,举例说明实际建表、主建、索引的操作方法。

2.1 设定需求如下

建普通表t_normal, 字段id, name, start_time, content,

设定id列为表t_normal的主建,主键名称为pk_t_normal_id,

建立id,name两列的组合索引,索引名称为idx_t_normal。

2.1.1查询数据库有哪些表空间

select name from v$tablespace;

2.1.2本文档假设数据库有这两个业务用户的表空间:

NWPP_D_XXX 存放数据的表空间

NWPP_I_XXX 存放索引的表空间

注:新建表及其索引属于哪个表空间根据项目自己的规划自行判断。实际项目中用户自定义的表空间都是NWPP_D开头的是存放数据,NWPP_I开头的是存放索引。

2.2 普通表操作方法

2.2.1新建普通表示例

create table t_normal(id number, name varchar2(20),start_time date, content varchar2(200))tablespace NWPP_D_XXX;

注:表示建立的t_normal表数据存放在NWPP_D_XXX表空间中。

2.2.2普通表建立主建示例

alter table t_normal add constraint pk_t_normal_id primary key(id) using index tablespace NWPP_I_XXX;

注:表示建立的主建pk_t_normal_id对应的唯一性索引pk_t_normal_id数据存放在NWPP_I_XXX表空间中。

2.2.3普通表建立索引示例

create index idx_t_normal on t_normal(id, name) tablespace NWPP_I_XXX;

注:表示建立的索引idx_t_normal数据存放在NWPP_I_XXX表空间中。

三、表、主键、索引的常规维护操作

3.1 表结构修改的方法举例:

3.1.1表添加一个字段

alter table t_part add content2 varchar2(50);

注:t_part表添加字段content2 数据类型varchar2(50)

3.1.2表添加多个字段

alter table t_part add (content3 varchar2(50),content4 varchar2(50),content5 varchar2(50));

注:t_part表添加3个字段content3, content4, content5 数据类型都为varchar2(50)

3.1.3表删除一个字段

alter table t_part drop column content5;

注:t_part表删除字段content5,一般不推荐删除表的字段。

3.1.4表删除多个字段

alter table t_part drop(content3, content4);

注:t_part表删除多个字段content3,content4,一般不推荐删除表的字段。

3.1.5表修改一个字段的数据类型

alter table t_part modify id number(7,0);

注:t_part表修改id字段的数据类型为number(7,0)

3.1.6表修改多个字段的数据类型

alter table t_part modify(name varchar2(50),content varchar2(50));

注:t_part表修改name字段的数据类型为varchar2(50), 修改content字段的数据类型为varchar2(50)

3.2 表、主建、索引的日常维护举例:

3.2.1删除表的主建

alter table t_normal drop primary key;alter table t_part drop primary key;

注:删除普通表t_normal的主建,删除分区表t_part的主建。语法相同。

3.2.2删除表的索引

drop index idx_t_normal;drop index idx_t_part;

注:删除普通表的普通索引,删除分区表的分区索引。语法相同。

3.2.3重建/新建表的主建

普通表t_normal建立主建:

alter table t_normal add constraint pk_t_normal_id primary key(id) using index tablespace NWPP_I_XXX;

表的主建对应了一个唯一性索引,需要明确指定这个索引的存储表空间。

3.2.4重建/新建表的索引

普通表在线建立索引:

create index idx_t_normal on t_normal(id, name) tablespace NWPP_I_XXX online;

每张表的索引个数不宜超过4个,否则会对此表的入库性能有影响。

若表中的数据量在千万级别以上,且确认要新建索引,请慎重操作。

上面只是之前工作上的一些范例,大家可以根据自己实际需求做改变,万变不离其宗。

后面会分享更多关于运维DBA方面的内容,感兴趣的朋友可以关注下。

标签: #oracle日常维护