ORACLE 创建分区表(hash模式)
对于大数据量的表格,分区表有利于其数据的检索,以下是创建HASH模式的分区表,适合于无法区分数据的分表设置。
一、查看ORACLE数据库表空间文件路径
SELECT T.TABLESPACE_NAME, D.FILE_NAME, D.AUTOEXTENSIBLE, D.BYTES, D.MAXBYTES, D.STATUS FROM DBA_TABLESPACES T, DBA_DATA_FILES D WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME ORDER BY TABLESPACE_NAME, FILE_NAME;
二、创建表空间
依据第一步查询到的表空间文件路径,通过以下语句创建符合自身要求的表空间;我这里新建的5个表空间,初始大小50MB,递增50MB,最大2048MB;
create tablespace 表空间名称 logging datafile '表空间DBF文件路径' size 50m autoextend on next 50m maxsize 2480m extent management local;
三、创建分区表(HASH模式)
建表语句
与普通建表语句区别:通过partition关键字进行分区设置(数据将随机存放在5个表空间中);
create table COMM.AREA_5_DICT ( serial_id NUMBER(20) not null, area_name VARCHAR2(250) not null, area_code VARCHAR2(40) not null, parent_code VARCHAR2(40) not null, area_type NUMBER(4), area_sort NUMBER(20) default 0, status NUMBER(1) default 0, name_path VARCHAR2(355), code_path VARCHAR2(220), creator VARCHAR2(64), create_time DATE default sysdate, updater VARCHAR2(64), update_time DATE default sysdate, deleted NUMBER(4) default 0, tenant_id NUMBER(20) default 0, create_user_name VARCHAR2(64), update_user_name VARCHAR2(64), input_code VARCHAR2(64) ) partition by hash (SERIAL_ID) ( partition PART1 tablespace TBSP_AREA1, partition PART2 tablespace TBSP_AREA2, partition PART3 tablespace TBSP_AREA3, partition PART4 tablespace TBSP_AREA4, partition PART5 tablespace TBSP_AREA5 );
创建索引
create unique index COMM.PK_AERA5_1 on COMM.AREA_5_DICT (SERIAL_ID, AREA_NAME, AREA_CODE, PARENT_CODE) tablespace TSP_COMM pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited );
添加主键
alter table COMM.AREA_5_DICT add constraint PK_AERA5 primary key (SERIAL_ID) using index tablespace TSP_COMM pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited )