oracle分区表
来源:互联网 发布:网络时间获取失败 编辑:程序博客网 时间:2024/05/22 11:43
当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。
1、表的大小超过2GB。
1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
分区表相关:已经存在的表没有方法可以直接转化为分区表。不过 Oracle 提供了在线重定义表的功能。
范围分区
范围分区将数据基于范围映射到每一个分区
CREATE TABLE CUSTOMER
(
CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY,
FIRST_NAME VARCHAR2(30) NOT NULL,
LAST_NAME VARCHAR2(30) NOT NULL,
PHONE VARCHAR2(15) NOT NULL,
EMAIL VARCHAR2(80),
STATUS CHAR(1)
)
PARTITION BY RANGE (CUSTOMER_ID)
(
PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01,
PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02
)
这里的值为表的行
在最高的分区中,MAXVALUE被定义。MAXVALUE代表了一个不确定的值
列表分区
该分区的特点是某列的值只有几个,基于这样的特点我们可以采用列表分区,就是基于列值来化分
CREATE TABLE PROBLEM_TICKETS
(
PROBLEM_ID NUMBER(7) NOT NULL PRIMARY KEY,
DESCRIPTION VARCHAR2(2000),
CUSTOMER_ID NUMBER(7) NOT NULL,
DATE_ENTERED DATE NOT NULL,
STATUS VARCHAR2(20)
)
PARTITION BY LIST (STATUS)
(
PARTITION PROB_ACTIVE VALUES ('ACTIVE') TABLESPACE PROB_TS01,
PARTITION PROB_INACTIVE VALUES ('INACTIVE') TABLESPACE PROB_TS02
)
散列分区
这类分区是在列值上使用散列算法,以确定将行放入哪个分区中。当列的值没有合适的条件时,建议使用散列分区
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
)
建议分区的数量采用2的n次方,这样可以使得各个分区间数据分布更加均匀
维护分区表
添加分区
ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD'));
- Oracle 分区表
- Oracle分区表!
- Oracle分区表
- Oracle分区表
- oracle分区表
- Oracle 分区表
- Oracle分区表
- oracle分区表
- oracle分区表
- Oracle分区表!
- oracle分区表
- oracle分区表
- oracle分区表
- Oracle 分区表
- ORACLE 分区表
- Oracle分区表
- Oracle 分区表
- oracle 分区表
- android SDL init failure, reason is: No available video device
- MyEclipse 8.0M中如何配置Tomcat
- android面试题
- java中判断socket服务器端是否断开连接
- TCP、UDP绑定同一端口通信的解释
- oracle分区表
- IPad开发环境安装配置图文
- 外文技术网站
- OpenGL编程指南中文版(原书第7版)
- 成为一个顶级设计师的八大秘诀
- OpenDMTP协议参考指南
- 【iOS开发必备指南合集】申请企业级IDP、真机调试、游戏接入GameCenter 指南(实现仿官方的成就提示)、游戏接入OpenFeint指南;
- vim tab键设置为空4格和自动缩进
- C++ String knowledge