在数据库性能需要保障的时候,可以使用Oracle进行分区操作
一 表分区
1.范围分区:一般使用部门字段,地区字段,时间字段
CREATE TABLE USER (user_id number(20) primary key, user_name varchar2(100) not null, regist_time varcahr(200) not null ) partition by range(regist_time) ( partition part_01 values less than(to_date('2013-01-01','yyyy-mm-dd') ) tablespace space_01, partition part_02 values less than(to_date('2014-01-01','yyyy-mm-dd') ) tablespace space_02, partition part_03 values less than(maxvalue) tablespace space_03 );
关键字:PARTITION BY RANGE(RANGE_COLUMN)
上面为按照注册日期为表分三个区,最后一个分区不指定日期值,均设定为MAXVALUE。
创建分区的同时为分区指定使用的表空间。
2.散列分区:一般使用编号字段
CREATE TABLE USER (user_id number(20) primary key, user_name varchar2(100) not null, regist_time varcahr(200) not null ) partition by hash(user_id) ( partition part_01 tablespace space_01, partition part_02 tablespace space_02, partition part_03 tablespace space_03 );
二.enable row movement
一般用于分区表,把表设置成enable row_movement允许修改分区键,并自动根据修改后的的值,决定记录是否被move到其它表分区。即某一行更新时,如果更新的是分区列,并且更新后的列值不属于原来的这个分区,如果开启了这个选项,就会把这行从这个分区中delete 掉,并加到更新后所属的分区。相当于一个隐式的delete+insert,但是不会触发insert/delete触发器。如果没有开启这个选项,就会在更新时报错。
实例:
create table TARGET_IDENTITY_INFO ( CREATED_BY VARCHAR2(100) default USER not null, DATE_CREATED DATE default SYSDATE not null, UPDATED_BY VARCHAR2(100) default USER not null, DATE_UPDATED DATE default SYSDATE not null, USER_ID NUMBER(20) PRIMARY KEY, USER_NAME VARCHAR2(100) not null, REGIST_TIME VARCAHR(200) not null ) partition by range (REGIST_TIME) ( partition TARGET_201311_PT values less than (to_date('2013-12-01','YYYY-MM-DD')) , partition TARGET_201312_PT values less than (to_date('2014-01-01','YYYY-MM-DD')) , partition TARGET_201401_PT values less than (to_date('2014-02-01','YYYY-MM-DD')) , partition TARGET_201402_PT values less than (to_date('2014-03-01','YYYY-MM-DD')) , partition TARGET_201403_PT values less than (to_date('2014-04-01','YYYY-MM-DD')) , partition TARGET_201404_PT values less than (to_date('2014-05-01','YYYY-MM-DD')) , partition TARGET_201405_PT values less than (to_date('2014-06-01','YYYY-MM-DD')) , partition TARGET_201406_PT values less than (to_date('2014-07-01','YYYY-MM-DD')) , partition TARGET_201407_PT values less than (to_date('2014-08-01','YYYY-MM-DD')) , partition TARGET_201408_PT values less than (to_date('2014-09-01','YYYY-MM-DD')) , partition TARGET_201409_PT values less than (to_date('2014-10-01','YYYY-MM-DD')) , partition TARGET_201410_PT values less than (to_date('2014-11-01','YYYY-MM-DD')) , partition TARGET_201411_PT values less than (to_date('2014-12-01','YYYY-MM-DD')) , partition TARGET_201412_PT values less than (to_date('2015-01-01','YYYY-MM-DD')) , partition TARGET_201501_PT values less than (to_date('2015-02-01','YYYY-MM-DD')) , partition TARGET_201502_PT values less than (to_date('2015-03-01','YYYY-MM-DD')) , partition TARGET_201503_PT values less than (to_date('2015-04-01','YYYY-MM-DD')) , partition TARGET_201504_PT values less than (to_date('2015-05-01','YYYY-MM-DD')) , partition TARGET_201505_PT values less than (to_date('2015-06-01','YYYY-MM-DD')) , partition TARGET_201506_PT values less than (to_date('2015-07-01','YYYY-MM-DD')) , partition TARGET_201507_PT values less than (to_date('2015-08-01','YYYY-MM-DD')) , partition TARGET_201508_PT values less than (to_date('2015-09-01','YYYY-MM-DD')) , partition TARGET_201509_PT values less than (to_date('2015-10-01','YYYY-MM-DD')) , partition TARGET_201510_PT values less than (to_date('2015-11-01','YYYY-MM-DD')) , partition TARGET_201511_PT values less than (to_date('2015-12-01','YYYY-MM-DD')) , partition TARGET_201512_PT values less than (to_date('2016-01-01','YYYY-MM-DD')) , partition TARGET_DEFAULT_PT values less than (maxvalue) )enable row movement;
三.查看表分区信息
1.DBA查看表分区
select * from dba_tab_partitions
2.USER查看表分区
select * from user_tab_partitions
3.DBA查看表分区类型
select * from dba_part_tables
4.USER查看表分区类型
select * from user_part_tables
5.查询分区表信息
select * from table partition(part_01)
相关推荐
在创建Oracle表分区之前,需要先创建一个分区表实例。创建分区表实例的SQL语句如下: ``` create table DE_TEST( name_tag varchar2(10), day_tag DATE) PARTITION BY RANGE (day_tag) ( PARTITION DE_TEST_...
### Oracle 分区表详解 #### 一、Oracle 分区简介 Oracle 的分区技术是一种用于管理和优化超大型表和索引的有效手段。通过将一个大型的表或者索引分割成多个较小且可管理的部分,分区技术能够显著提升数据库的性能...
### Oracle表分区、建表空间与用户管理 #### 一、表空间的创建与管理 在Oracle数据库中,**表空间**(Tablespace)是物理存储的逻辑容器,它由一个或多个数据文件组成。创建一个新的表空间对于数据库的管理非常重要...
Oracle分区表中的Hash分区是一种基于哈希算法的分区策略,适用于...在实际应用中,创建和扩展Hash分区表时,应结合业务需求和数据特性,综合考虑分区键的选择、分区数的设定以及扩展策略,以实现最佳的性能和管理效果。
操作方法包括创建、插入、更新、删除和查询分区表,以及重构分区,如合并、拆分和交换分区。在SQL DML命令中,对分区表的操作与非分区表相同,用户无需感知分区的存在。 总的来说,Oracle表分区是大型数据库系统中...
文件是本人oracle10g分区表自动按时间创建、删除分区的存储过程,测试代码,通过job调用存储过程,每天午夜12点运行一次。妥妥!跟大家分享下!
1. **创建临时分区表**:首先创建一个新的分区表结构,但不包含任何数据。 2. **导入数据**:使用 `INSERT INTO ... SELECT FROM` 或其他方法将原始表的数据导入到新创建的分区表中。 3. **删除原始表**:确认数据...
### Oracle 分区表与分区索引详解 #### 一、Oracle分区概述 在Oracle数据库中,分区技术是一种非常有效的管理大型表和索引的方法。通过将一个大的表或索引分成多个较小的部分(分区),可以显著提高查询性能,并...
- 分区表的管理可能比非分区表复杂,尤其是当涉及到大量分区时。 - 对于频繁更改分区键的场景,分区表的维护成本较高。 #### 四、分区类型及示例 ##### 1. 范围分区 范围分区是根据一个列的值的范围来决定数据存储...
例如,根据日期字段`s_time`创建一个范围分区表: ```sql CREATE TABLE t_par (s_time DATE, id NUMBER) PARTITION BY RANGE (s_time) ( PARTITION p_max VALUES LESS THAN (MAXVALUE) TABLESPACE users ); ``` 接...
完成分区和索引的创建后,需要将之前备份的数据恢复到新创建的分区表中。这一步骤可以通过简单的INSERT INTO...SELECT FROM语句实现: ```sql INSERT INTO USER_ORDER SELECT * FROM USER_ORDER_DATA; ``` #### 六...
Oracle数据库中的分区表是一种高级的表组织形式,它将大表分成多个较小的部分,每个部分称为一个分区,以提高查询性能和管理效率。当表的大小超过2GB时,官方推荐使用分区表,因为它们在处理大量数据时具有显著优势...
-- B方案比较适合将非分区表中的数据放到分区表中的一个分区中,不符合要求,所以本分区存储过程默认采用A方案; -- 当然,也支持通过新增参数PARTEXCHANGE来控制是否使用B方案;PARTEXCHANGE为TRUE,使用B方案,为FALSE,...
下面将详细介绍 Oracle 分区表分区索引的类型、分类、创建方法和维护方式。 一、分区表和分区索引的概念 分区表是指将一个大型表分割成多个小表,每个小表称为一个分区。分区表可以根据不同的方式进行分区,例如...
6. **全局索引分区**:当对分区表创建索引时,可以选择创建全局索引,索引覆盖所有分区,或者创建局部索引,每个分区有自己的索引。 二、分区优势 1. **性能提升**:通过只扫描与查询条件相关的分区,显著减少I/O...
7. **脚本使用说明**:通常,该脚本会包含SQL语句,用于创建分区表和定义分区策略。DBA需要根据实际业务需求,调整脚本中的参数,如分区字段、分区数量、分区边界等。 8. **注意事项**:在使用自动分区脚本时,需...
通过上述步骤,可以看出Oracle创建分区表的过程涉及多个环节,需要细心规划和执行。在实际应用中,还需要考虑分区的策略、维护分区的规则以及可能对应用程序造成的影响。正确使用分区表可以显著提升数据库的性能和可...
虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写操作和查询中速度更快,Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能。
【Oracle分区表用法】 Oracle分区表是一种高级的数据库管理技术,它将大型表的数据分散存储在不同的物理区域,以提升查询效率和系统的整体性能。本文将详细介绍分区表的概念、作用、优缺点,以及各种类型的分区表...