Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92410814
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-15 13:01:21

 来源:赛迪网技术社区    作者:yuanyang

Oracle9i现在有两个方法可以完成分割:range分割和新的list分割。但是range分割需要标量数值,而list分割允许使用非标量数值。

要区分range分割和list分割,让我们看一个简单的例子。现在我们看一个range分割的表,然后使用area_code来分割数据:

  
  Create table customer
  (
    Last_name varchar2(30),
    area_code number
    . . .
  )
  PARTITION BY RANGE (area_code)
  (
    PARTITION part_505 values less than(505),
    PARTITION part_212 values less than(212),
    PARTITION part_919 values less than(919),
    PARTITION part_252 values less than(252),
    PARTITION part_415 values less than(MAXVALUE)
  );
  

不像range分割需要一个NUMBER或者DATE标量值,list分割可以用于根据你想用的任何值来分割数据。下面是一个customer数据库的例子,其数据根据州(state)进行分割:

  
  create table
    customer
    (col values)
  partition by list (state_name)
  partition yankees values ('New York','Maine'),
  partition rebels values ('North Carolina', South Carolina');
  

我们可以看到,list分割为大型Oracle表增加了很大的灵活性,而且在进行逻辑划分行数据的时候给了你更多的选择。

阅读(168) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~