ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle表分区自我理解

oracle表分区自我理解

原创 Linux操作系统 作者:greenteazsh 时间:2011-02-23 17:55:48 0 删除 编辑
1、分区表
       通过分区技术可以有效地解决大表、大索引带来的问题。用户对分区表执行的 SQL 查询或 DML 语句与对普通数据表的语句一样。但是定义了分区后,DDL 语句可以访问、操作一个单独的分区,而不是整个表或索引,这样通过分区技术就能简化对大数据库对象的管理工作。分区对应用程序是透明的。(要注意分区对应用程序是透明的,查询、插入等语句对分区和不分区表没有区别。但可以针对单独的一个表分区进行处理,语句为 select * from table table_part partition(part1))。
        表分区方法有范围分区、列表分区、哈希分区和复合分区。
       范围分区:
       CREATE TABLE sales_range (
  salesman_id NUMBER(5),
  salesman_name VARCHAR2(30),
  sales_amount NUMBER(10),
  sales_date DATE)
PARTITION BY RANGE(sales_date)(
PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('02/01/2000','MM/DD/YYYY')),
PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('03/01/2000','MM/DD/YYYY')),
PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','MM/DD/YYYY')),
PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('05/01/2000','MM/DD/YYYY'))
);
        列表分区:
        CREATE TABLE sales_list(
  salesman_id NUMBER(5),
  salesman_name VARCHAR2(30),
  sales_state VARCHAR2(20),
  sales_amount NUMBER(10),
  sales_date DATE)
PARTITION BY LIST(sales_state)(
PARTITION sales_west VALUES('California', 'Hawaii'),
PARTITION sales_east VALUES ('New York', 'Virginia', 'Florida'),
PARTITION sales_central VALUES('Texas', 'Illinois'),
PARTITION sales_other VALUES(DEFAULT)
);
          哈希分区:
          CREATE TABLE sales_hash(
  salesman_id NUMBER(5),
  salesman_name VARCHAR2(30),
  sales_amount NUMBER(10),
  week_no NUMBER(2))
PARTITION BY HASH(salesman_id)
PARTITIONS 4
STORE IN (ts1, ts2, ts3, ts4);
 
          以下是关于何时应该对表进行分区的一些建议:
  • 如果表数据量超过 2GB,就应该考虑进行分区。
  • 如果表中包含历史数据,且新数据会被添加到最新的表空间中。典型的例子是一种历史表,其中只有当前月份的数据可以被修改,而其他十一个月的数据为只读。

2、索引:

b-tree索引可以同样使用。位图索引需要为本地索引,和非分区表不用同样使用。

3、非分区表转为分区表方法

       如果此分区表中,所涉及的查询条件sql谓词都包含某个字段,比如时间stime,可以依照时间进行分区。首先建一个和分区表一样的数据表,是分区表,用stime做分区字段。然后insert into table_test_partition values select * from table_test。oracle会依据分区特性,自动插入到相应表分区中。然后此表转换为分区表,新的应用可以从此表中进行查询。(这个办法比较土,但可行,就是会慢一些,因为非分区表的数据量都是比较大的。)

 

 

      

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9521459/viewspace-687794/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 新建数据库用户
请登录后发表评论 登录
全部评论

注册时间:2011-01-13

  • 博文量
    51
  • 访问量
    192036