`
chella
  • 浏览: 32877 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ORACLE 创建和使用分区

    博客分类:
  • JAVA
阅读更多

  以system身份登陆数据库,查看 v$option视图,如果其中Partition为TRUE,则支持分区功能;否则不支持。Partition有基于范围、哈希、综和三种类型。
  1 、以system 身份创建独立的表空间(大小可以根据数据量的多少而定)

  create tablespace g_2010q1 datafile '/home/oradata/oradata/test/g_2010q1.dbf' size 50M default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 1);

  create tablespace g_2010q2 datafile '/home/oradata/oradata/test/g_2010q2.dbf' size 50M default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 1);

 
  2 、用EXPORT工具把旧数据备份在guestbook.dmp中
  把原来的guestbook表改名

alter table guestbook rename to guestbookold;

  以guestbook 身份创建分区的表

create table guestbook(
  id number(16) primary key,
  username varchar2(64),
  sex varchar2(2),
  email varchar2(256),
  expression varchar2(128),
  content varchar2(4000),
  time date,
  ip varchar2(64)
  );

  

partition by range (time)
  partition g_2010q1 values less than (to_date('2010-01-01','yyyy-mm-dd'))
  tablespace g_2010q1
  storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0),
  partition g_2010q2 values less than (to_date('2010-02-01','yyyy-mm-dd'))
  tablespace g_2010q2
  storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0),
  partition g_2010q3 values less than (to_date('2010-03-01','yyyy-mm-dd'))
  tablespace g_2010q3
  storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0),
  );

 

3、IMPORT导入数据,参数ignore=y
  
4、分区表的扩容:

create tablespace g_2010q4 datafile '/home/oradata/oradata/test/g_2010q4.dbf' size 50m default storage (initial 100k   next 100k minextents 1 maxextents unlimited pctincrease 1);

 
 为表添加新分区和表空间:

alter table guestbook add partition g_2010q4
 values less than (to_date('2010-04-01','yyyy-mm-dd')
 tablespace g_2010q3 
 storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0); 

 
5、EXPORT 分区:
 % exp guestbook/guestbook_password tables=guestbook:g_2010q1 rows=Y file=g_2010q1.dmp

  

6、删除不必要的分区
  将1月份的数据备份,将1月份的分区删除。

alter table guestbook drop partion g_2010q1;

 

 删除物理文件
 %rm /home/oradata/oradata/test/g_2010q1.dbf

  7、IMPORT分区:
  例如在4月份,用户要查看1月的数据,先创建表空间

  create tablespace g_2010q13 datafile '/home/oradata/oradata/test/g_2010q13.dbf' size 50m default storage (initial    100k  next 100k minextents 1 maxextents unlimited pctincrease 1);

   
  为表添加新分区和表空间:

alter table guestbook add partition g_2010q13
  values less than (to_date('2010-01-01','yyyy-mm-dd')
  tablespace g_2010q13 
  storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0); 

   
  导入数据
  %imp guestbook/guestbook_password file=g_2010q1.dmp tables=(guestbook:g_2010q13) ignore=y

分享到:
评论

相关推荐

    oracle自动建立表分区脚本

    7. **脚本使用说明**:通常,该脚本会包含SQL语句,用于创建分区表和定义分区策略。DBA需要根据实际业务需求,调整脚本中的参数,如分区字段、分区数量、分区边界等。 8. **注意事项**:在使用自动分区脚本时,需...

    Oracle分区表详解

    Oracle 的分区技术是一种用于管理和优化超大型表和索引的有效手段。通过将一个大型的表或者索引分割成多个较小且可管理的部分,分区技术能够显著提升数据库的性能、可用性和可维护性。 ##### 分区的作用: 1. **...

    oracle分区表之hash分区表的使用及扩展

    Oracle分区表中的Hash分区是一种基于哈希算法的分区策略,适用于...在实际应用中,创建和扩展Hash分区表时,应结合业务需求和数据特性,综合考虑分区键的选择、分区数的设定以及扩展策略,以实现最佳的性能和管理效果。

    ORACLE表自动按月分区步骤

    完成分区和索引的创建后,需要将之前备份的数据恢复到新创建的分区表中。这一步骤可以通过简单的INSERT INTO...SELECT FROM语句实现: ```sql INSERT INTO USER_ORDER SELECT * FROM USER_ORDER_DATA; ``` #### 六...

    利用kettle自动创建oracle表分区

    使用Kettle可以自动创建Oracle表分区,从而提高数据管理效率和查询效率。 在创建Oracle表分区之前,需要先创建一个分区表实例。创建分区表实例的SQL语句如下: ``` create table DE_TEST( name_tag varchar2(10), ...

    Oracle锁和表分区

    临时表可以创建索引、视图和触发器,但不能建立外键。 了解并熟练掌握锁和表分区的概念及其应用,对于优化Oracle数据库的性能和确保数据一致性至关重要。在实际操作中,根据业务需求合理使用这些机制,能够显著提升...

    oracle10g分区表自动按时间创建删除分区存储过程

    文件是本人oracle10g分区表自动按时间创建、删除分区的存储过程,测试代码,通过job调用存储过程,每天午夜12点运行一次。妥妥!跟大家分享下!

    oracle创建分区表.pdf

    本篇文档详细介绍了Oracle数据库中分区表的创建、使用和扩容过程。 一、分区表的优点 当处理大型表时,数据访问和管理效率会大幅下降。分区表能够将一个大表分解为小的、更易于管理的部分,这些部分在逻辑上是表的...

    oracle自动一年建立表分区.zip

    "Oracle自动一年建立表分区.zip"文件显然包含了用于自动创建按时间(一年)分区的Oracle脚本。这样的脚本对于处理大量历史数据的企业尤其有用,因为它可以帮助将大表分解成更小、更易管理和查询的部分。 表分区的...

    Oracle 分区表 分区索引

    在Oracle数据库中,分区技术是一种非常有效的管理大型表和索引的方法。通过将一个大的表或索引分成多个较小的部分(分区),可以显著提高查询性能,并简化表和索引的管理。 #### 二、何时使用分区 在决定是否对表...

    Oracle分区表及分区索引

    散列分区是将数据基于散列算法映射到每一个分区,例如,可以将 ID 主键值增加全局索引的时候使用散列分区,主要做的目的是将递增的索引键值分布到多个分区上避免系统争用和热块的产生。 Exp1: CREATE TABLE HASH_...

    oracle普通表转化为分区表的方法

    Oracle数据库中的分区表是一种高级的表组织形式,它将大表分成多个较小的部分,每个部分称为一个分区,以提高查询性能和管理效率。当表的大小超过2GB时,官方推荐使用分区表,因为它们在处理大量数据时具有显著优势...

    oracle中锁和表分区

    除了创建和使用分区,还需要了解如何维护分区。在Oracle中,可以执行以下操作: - 添加分区:当有新的数据范围出现时,可以动态添加新的分区。 - 删除分区:不再需要某些分区时,可以安全地删除它们,但需注意数据的...

    oracle数据库表按年分区脚本实战例子

    "Oracle数据库表按年分区脚本实战例子"是针对这一主题的具体实践教程,旨在帮助用户理解和掌握如何为Oracle表创建按年分区的脚本。 首先,我们需要了解分区的基本类型。Oracle支持多种分区策略,包括范围分区...

    ORACLE分区

    根据提供的文件信息,本文将详细解释Oracle分区技术及其在解决UNDOTBS01.DBF文件过大问题中的应用方法,并进一步探讨Oracle分区的不同类型及其应用场景。 ### Oracle 分区概述 Oracle分区是一种将大表或索引分割成...

    Oracle表分区 建表空间 创建用户

    ### Oracle表分区、建表空间与用户管理 #### 一、表空间的创建与管理 在Oracle数据库中,**表...以上是关于Oracle表分区的基本介绍和具体实现方式,通过合理运用这些分区技术,可以显著提升数据库的性能和管理效率。

    Oracle数据库分区表操作方法

    Oracle数据库中的分区表是将大型数据表分割成多个小表,以提高应用系统的性能和方便数据管理。在本文中,我们将详细介绍分区表的使用方法和优点。 分区表的优点 使用分区表可以带来以下几个优点: ·增强可用性:...

Global site tag (gtag.js) - Google Analytics