例如我们要对一张表按照时间创建分区:
create table cmp
(
transaction_id number primary key,
item_id number(8) not null,
item_description varchar2(300),
transaction_date date not null
)
partition by range (transaction_date)
(
partition part_01 values less than(to_date('2006-01-01','yyyy-mm-dd')) tablespace dinya_space01,
partition part_02 values less than(to_date('2010-01-01','yyyy-mm-dd')) tablespace dinya_space02,
partition part_03 values less than(maxvalue) tablespace dinya_space03
);
这样我们就分别建了以交易序号和交易日期来分区的分区表。每次插入数据的时候,系统将根据指定的字段的值来自动将记录存储到制定的分区(表空间)中。
当然,我们还可以根据需求,使用两个字段的范围分布来分区,如partition by range ( transaction_id ,transaction_date),分区条件中的值也做相应的改变,请读者自行测试。
按天创建分区:
create table anoscfg.test_123
(
begin_time date
)
partition by RANGE (BEGIN_TIME)
(
partition p1 values less than (to_date('2012-05-13', 'yyyy-mm-dd')),
partition p2 values less than (to_date('2012-05-14', 'yyyy-mm-dd')),
partition p3 values less than (to_date('2012-05-15', 'yyyy-mm-dd')),
partition p4 values less than (to_date('2012-05-16', 'yyyy-mm-dd')),
partition p5 values less than (to_date('2012-05-17', 'yyyy-mm-dd'))
);
insert into anoscfg.test_123(BEGIN_TIME) values(to_date('2012-05-12', 'yyyy-mm-dd'));
insert into anoscfg.test_123(BEGIN_TIME) values(to_date('2012-05-13', 'yyyy-mm-dd'));
insert into anoscfg.test_123(BEGIN_TIME) values(to_date('2012-05-14', 'yyyy-mm-dd'));
insert into anoscfg.test_123(BEGIN_TIME) values(to_date('2012-05-15', 'yyyy-mm-dd'));
insert into anoscfg.test_123(BEGIN_TIME) values(to_date('2012-05-16', 'yyyy-mm-dd'));
查询分区:
select * from test_123 partition(p4);
分享到:
相关推荐
文件是本人oracle10g分区表自动按时间创建、删除分区的存储过程,测试代码,通过job调用存储过程,每天午夜12点运行一次。妥妥!跟大家分享下!
通过上述步骤,可以看出Oracle创建分区表的过程涉及多个环节,需要细心规划和执行。在实际应用中,还需要考虑分区的策略、维护分区的规则以及可能对应用程序造成的影响。正确使用分区表可以显著提升数据库的性能和可...
"利用Kettle自动创建Oracle表分区" 在本篇文章中,将会介绍如何使用Kettle自动创建Oracle表分区。Oracle表分区是一种非常重要的数据库优化技术,它可以将大型表分割成多个小的独立表,从而提高查询效率和数据管理...
本文将以具体的实例——报单表`USER_ORDER`为例,详细介绍如何实现Oracle表的自动按月分区,并创建相应的本地索引。 #### 二、准备工作 在开始分区之前,需要先做一些必要的准备工作,确保数据的安全性以及后续操作...
### ORACLE 分区表的创建详解 #### 一、概述 在Oracle数据库中,分区是一种高效的数据管理方式,尤其适用于大型表和索引组织表。通过将数据逻辑地分割成多个独立的部分(即分区),可以显著提高查询性能,并简化表...
这对于DBA来说非常有用,可以节省手动创建和维护分区的时间。 7. **脚本使用说明**:通常,该脚本会包含SQL语句,用于创建分区表和定义分区策略。DBA需要根据实际业务需求,调整脚本中的参数,如分区字段、分区数量...
### Oracle 数据表分区详解 #### 一、分区表理论知识 Oracle 提供了表分区功能以支持非常大型的数据库(VLDB)。通过分区技术,可以根据指定的分区键将数据分散到不同的物理位置,从而实现更高效的数据管理和查询...
"Oracle数据库表按年分区脚本实战例子"是针对这一主题的具体实践教程,旨在帮助用户理解和掌握如何为Oracle表创建按年分区的脚本。 首先,我们需要了解分区的基本类型。Oracle支持多种分区策略,包括范围分区...
以上介绍了Oracle表分区的基本概念、优点、限制以及两种常见的分区类型——范围分区和列表分区,并给出了具体的创建示例。通过合理地使用表分区技术,可以有效地提高数据库系统的性能和可管理性。
例如,根据日期字段`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 ); ``` 接...
- **时间分区(Time-based Partitioning)**:通常用于历史数据,如按年、月、日等时间单位分区。 创建和管理分区表时,需考虑数据分布、查询模式以及存储需求,确保最优的性能和可管理性。 总结,Oracle分区表...
支持自动ORACLE大表分区: 版本进度: 31. 20110420 V2.2 支持任意表任意时间字段分区 以下为安装部署部分: 1.分区相关脚本部署执行顺序,安装前请确保该用户拥有管理员权限, 同时请执行GRANT CREATE ANY TABLE ...
在创建范围分区时,需要注意以下几点: - 每个分区都必须指定一个`VALUES LESS THAN`子句,用于定义分区的上限值。 - 除第一个分区外,所有分区都有一个隐式下限值,即前一个分区的上限值。 - 最高的分区通常会...
自动分区是将数据基于时间间隔映射到每一个分区,例如,可以每个月系统自动生成一个分区。 CREATE TABLE auto_partition ( OBJECT_ID NUMBER, OBJECT_TYPE VARCHAR2(128), CREATED DATE ) PARTITION BY RANGE ...
在分区表上创建本地索引时,每个分区都有自己的索引,这在处理大量数据的滚动窗口操作(如添加新数据并移除旧数据)时非常高效,允许快速加载和删除而不影响其他分区。 6. **分区维护** 分区提供了灵活的数据管理...
"Oracle自动一年建立表分区.zip"文件显然包含了用于自动创建按时间(一年)分区的Oracle脚本。这样的脚本对于处理大量历史数据的企业尤其有用,因为它可以帮助将大表分解成更小、更易管理和查询的部分。 表分区的...