数据库教程:Oracle表分区实例讲解

一、概述 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存

一、概述

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

二、类型

1、范围分区

根据列的数值范围进行分区,最常见的是根据日期分区。

  create table STUDENT(   id  varchar2(20),   name varchar2(20),   birthday date,   type varchar2(20)  )  partition by range(birthday)  (     partition  S80 values less than (to_date('1990-01-01','yyyy-mm-dd')) TABLESPACE SP_01,     partition  S90 values less than (to_date('2000-01-01','yyyy-mm-dd')) TABLESPACE SP_02  )

2、列表分区

根据列的具体值来分区,适用于列值固定的数据,如类型,部门。

  create table STUDENT(   id  varchar2(20),   name varchar2(20),   birthday date,   type varchar2(20)  )  partition by list(type)  (     partition  full_time values ('fullTime') TABLESPACE SP_01,     partition  part_time values ('partTime') TABLESPACE SP_02  )

3、散列分区

这类分区是在列值上使用散列算法,以确定将行放入哪个分区中。当列的值没有合适的条件时,建议使用散列分区。散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。

  CREATE TABLE HASH_TABLE  (    COL NUMBER(8),    INF VARCHAR2(100)  )  PARTITION BY HASH (COL)  (    PARTITION PART01 TABLESPACE HASH_TS01,    PARTITION PART02 TABLESPACE HASH_TS02,    PARTITION PART03 TABLESPACE HASH_TS03  )

4、组合分区

以上分区类型的组合

三、操作

1、查询特定分区里的数据

select * from track_list partition(M201801)

2、查看分区情况

  select * from USER_TAB_PARTITIONS 

3、新增分区

  alter table graderecord add partition S_01

4、删除分区

  alter table table_name drop partition S_4

5、合并分区

  ALTER TABLE SALES MERGE PARTITIONS P1,P2 INTO PARTITION P2

6、拆分分区

需要了解更多数据库技术:Oracle表分区实例讲解,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

  alter table graderecord split partition P_01 at(75) into(partition P_02,partition P_03)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/801986.html

(0)
上一篇 2021年9月13日
下一篇 2021年9月13日

精彩推荐