电竞

Oracle数据库分区表操作方法(2)

2019-09-12 10:53:17来源:励志吧0次阅读

根据交易日期分区建表:

以下为引用的内容:

SQL> create table dinya_test

2 (

3 transaction_id number primary key,

4 item_id number(8) not null,

5 item_description varchar2(300),

6 transaction_date date not null

7 )

8 partition by range (transaction_date)

9 (

10 partition part_01 values less than(to_date(’2006-01-01’,’yyyy-mm-dd’))

tablespace dinya_space01,

11 partition part_02 values less than(to_date(’2010-01-01’,’yyyy-mm-dd’))

tablespace dinya_space02,

12 partition part_03 values less than(maxvalue) tablespace dinya_space03

13 );

Table created.

这样我们就分别建了以交易序号和交易日期来分区的分区表。每次插入数据的时候,系统将根据指定的字段的值来自动将记录存储到制定的分区(表空间)中。

当然,我们还可以根据需求,使用两个字段的范围分布来分区,如partition by range ( transaction_id ,transaction_date), 分区条件中的值也做相应的改变,请读者自行测试。

1.1.2. Hash分区(散列分区)

散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。如将物料交易表的数据根据交易ID散列地存放在指定的三个表空间中:

以下为引用的内容:

SQL> create table dinya_test

2 (

3 transaction_id number primary key,

4 item_id number(8) not null,

5 item_description varchar2(300),

6 transaction_date date

7 )

8 partition by hash(transaction_id)

9 (

10 partition part_01 tablespace dinya_space01,

11 partition part_02 tablespace dinya_space02,

12 partition part_03 tablespace dinya_space03

13 );

Table created.

建表成功,此时插入数据,系统将按transaction_id将记录散列地插入三个分区中,这里也就是三个不同的表空间中。

1.1.3. 复合分区

有时候我们需要根据范围分区后,每个分区内的数据再散列地分布在几个表空间中,这样我们就要使用复合分区。复合分区是先使用范围分区,然后在每个分区内再使用散列分区的一种分区方法,如将物料交易的记录按时间分区,然后每个分区中的数据分三个子分区,将数据散列地存储在三个指定的表空间中:

以下为引用的内容:

SQL> create table dinya_test

2 (

3 transaction_id number primary key,

4 item_id number(8) not null,

5 item_description varchar2(300),

6 transaction_date date

7 )

8 partition by range(transaction_date)subpartition by hash(transaction_id)

9 subpartitions 3 store in (dinya_space01,dinya_space02,dinya_space03)

10 (

11 partition part_01 values less than(to_date(’2006-01-01’,’yyyy-mm-dd’)),

12 partition part_02 values less than(to_date(’2010-01-01’,’yyyy-mm-dd’)),

13 partition part_03 values less than(maxvalue)

14 );

Table created.

该例中,先是根据交易日期进行范围分区,然后根据交易的ID将记录散列地存储在三个表空间中。

冠心病严重吗能活多久
宝宝热咳和寒咳的区别
小孩不消化吃什么食物
治疗心肌梗死的方法
分享到: