oracle 字符型字段创建范围分区,oracle_根据ID(字符型)建立分区表

本文介绍了如何在Oracle数据库中为字符型字段创建范围分区,以提高单条查询性能。通过为不同首字母的数据分配不同的物理文件,实现数据的逻辑独立和物理分离。详细步骤包括创建分区表空间、建立分区表以及进行测试和清理操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方案思路:有一张暴增的数据表(10亿级别),以后需求需要提高单条查询性能, 这个表有个唯一ID,

假设是UUID,采用区分首字母的方法,不同字母的数据入到不同的物理文件中。

第一步:

查找数据库服务器本机 物理文件存放位置 例如 ,D:\oracle\product\10.2.0\oradata\database

在此目录下新建文件夹  partition   。用于存放分区表 下不同表空间的dbf(物理文件)。

aa950a3cefae9a002c24204f8e0c36ad.png

第二步:

建立分区表需要的表空间 。

CREATE  TABLESPACE tablespace_a  LOGGING  DATAFILE  'D:\oracle\product\10.2.0\oradata\database\partition\tablespace_a_0.DBF '   SIZE 10M  AUTOEXTEND  ON   NEXT  10M MAXSIZE 100M  EXTENT MANAGEMENT LOCAL;

CREATE  TABLESPACE tablespace_b  LOGGING  DATAFILE  'D:\oracle\product\10.2.0\oradata\database\partition\tablespace_b_0.DBF '   SIZE 10M  AUTOEXTEND  ON   NEXT  10M MAXSIZE 100M  EXTENT MANAGEMENT LOCAL;

第三步:

建立分区表

---create by cphmvp 20131220

create table tab_page_relation_partition

(

UNIQUE_ID CHAR(32) not null,

DATA_ID CHAR(32),

NICK_ID NUMBER,

URL VARCHAR2(512),

UPDATE_TIME DATE,

INSERT_TIME DATE default sysdate not null,

LAST_CRAWLER_TIME DATE,

MARK NUMBER default 0 not null

)

--根据unique_id区分 数据,逻辑上独立,物理上分开

partition by range(UNIQUE_ID)

(

partition part_a values less than('b') tablespace tablespace_a,

partition part_b values less than(maxvalue) tablespace tablespace_b

);

四:

插入测试

INSERT INTO tab_page_relation_partition (unique_id) VALUES('accccccccccc');

INSERT INTO tab_page_relation_partition (unique_id) VALUES('bccccccccccc');

INSERT INTO tab_page_relation_partition (unique_id) VALUES('cccccccccccc');

commit;

查询:

SELECT * FROM tab_page_relation_partition ;

select*from tab_page_relation_partition PARTITION(PART_A);

select*from tab_page_relation_partition PARTITION(PART_B);

五:

清理工作

删除表

DROP TABLE tab_page_relation_partition;

删除物理文件含表空间

DROP TABLESPACE TABLESPACE_A INCLUDING CONTENTS AND DATAFILES;

DROP TABLESPACE TABLESPACE_B INCLUDING CONTENTS AND DATAFILES;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值