5.Oracle 创建分区表,查询,创建,删除,分解分区

本文详细介绍了Oracle数据库中如何创建分区表,包括表空间、范围分区、哈希分区、列表分区及其复合类型。讨论了分区的优点如提升查询性能、增强可用性和维护便利性,以及潜在的缺点。还涵盖了查询分区、删除分区、分解分区等相关操作,帮助读者深入理解Oracle分区表的管理和使用。
摘要由CSDN通过智能技术生成

1. 创建分区表

1)表空间:

表空间是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。

2)分区表:

当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表,以便加快查询效率。

Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间(tablespace)中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。

3)表分区优点/缺点:

表分区有以下优点:
1、改善查询性能:对分区对象的查询可以仅搜索自己指定的分区,提高检索速度。
2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;
3、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;
4、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能。

表分区有以下缺点::
分区表相关:已经存在的表没有方法可以直接转化为分区表。不过 Oracle 提供了在线重定义表的功能。

2. 分区的类型

(1)范围分区(range)

范围分区将数据基于范围映射到每一个分区,这个范围是在创建分区时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期。

使用范围分区时,需要注意以下几个规则:
1、每一个分区都必须有一个VALUES LESS THAN子句,它指定了一个不包括在该分区中的上限值。分区键的任何值等于或者大于这个上限值的记录都会被加入到下一个高一些的分区中。
2、所有分区,除了第一个,都会有一个隐式的下限值,这个值就是此分区的前一个分区的上限值。
3、在最高的分区中,MAXVALUE被定义。MAXVALUE代表了一个不确定的值。这个值高于其它分区中的任何分区键的值,也可以理解为高于任何分区中指定的VALUE LESS THAN的值,同时包括空值。
Sample 1:
假设有个Bank Customer information 表,表中有数据1000000行,我们将此表通过CUSTOMER_ID进行分区,每个分区存储500000行,然后将每个分区保存到单独的表空间中,这样数据文件就可以跨越多个物理磁盘。
demo 1:

CREATE TABLE TBL_BANK_CUSTOMER_INFO
(
    CUSTOMER_ID        NUMBER NOT NULL PRIMARY KEY,
    CARD_NO            VARCHAR2(19) NOT NULL,
    CUSTOMER_TYPE_ID   VARCHAR2(1) NOT NULL,
    CUSTOMER_NAME      VARCHAR2(30) NOT NULL,
    CUSTOMER_EMAIL     VARCHAR2(80)
)
PARTITION BY RANGE (CUSTOMER_ID)
(
    PARTITION TP_CUSTOMER_INFO1 VALUES LESS THAN (500000) TABLESPACE TBS_DWH_LARGE1,
    PARTITION TP_CUSTOMER_INFO2 VALUES LESS THAN (1000000) TABLESPACE TBS_DWH_LARGE2
);

demo 2:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值