oracle分区技术

 ORACLE分区技术

Oracle允许把一个大表分成几部分,每部分叫一个分区,然后把每个部分放在不同的物理磁盘上,以提高整个数据库的性能。

Ø  分区技术有下面的优点

1.         使数据库的可管理性变得更加容易,如:用户可以往一个单独的分区中装载数据,而对其他分区没有任何影响;用户可以再单独的分区上创建索引等。

2.         可以提高表的查询性能,SQL语句的WHERE子句会过滤掉不需要的分区,Oracle不会再扫描那些不需要的分区。

3.         减少数据的不可用时间,用户可以单独地维护一个分区中的数据,而不影响其他分区中数据的使用。

4.         在数据库级完成,几乎不需要对应用程序做任何修改。

Ø  根据不同的需求,Oracle提供下面几种分区方法。

1.         范围分区(Range Partitioning),范围分区根据表中列值的范围将整个表分成不同的部分,如:按照时间进行范围分区。

2.         哈希分区(Hash Partitioning),哈希分区使用哈希函数把表分成几部分。

3.         列表分区(List Partitioning),列表分区使用列表值将表划分成几部分。

SQL语句:

创建表空间

SQL>create tablespace a1 logging datafile'/oracle/app/oradata/a1.dbf' size 10m;

SQL>create tablespace a2 logging datafile'/oracle/app/oradata/a2.dbf' size 10m;

SQL>create tablespace a3 logging datafile'/oracle/app/oradata/a3.dbf' size 10m;

SQL>create tablespace a4 logging datafile'/oracle/app/oradata/a4.dbf' size 10m;

 以范围分区的方式创建表

SQL>CREATE TABLE sales

(invoice_no NUMBER,

sale_year INT NOT NULL,

sale_month INT NOT NULL,

sale_day INT NOT NULL)

PARTITION BY RANGE(sale_year)

(PARTITION P1 VALUES LESS THAN(2000)

TABLESPACE A1,

PARTITION P2 VALUES LESS THAN (2001)

TABLESPACE A2,

PARTITION P3 VALUES LESS THAN (2002)

TABLESPACE A3,

PARTITION P4 VALUES LESS THAN(2003)

TABLESPACE A4);

PARTITION BY 指定分区方式

RANGE  表示范围分区

PARTITION 指定分区的名字

VALUES  LESS  THAN 指定分区上限

TABLESPACE  指定分区的存放位置

 

以哈希的方式创建表

SQL>CREATE TABLE dept (deptno NUMBER,deptname VARCHAR(32))

PARTITION BY HASH (deptno)

(PARTITION P1 TABLESPACE A1,

PARTITION P2 TABLESPACE A2,

PARTITION P3 TABLESPACE A3,

PARTITION P4 TABLESPACE A4);

PARTITION BY HASH 表示按照哈希进行分区

PARTITION 用于指定分区的名字

TABLESPACE 指定分区的存放位置

 

以列表分区的方式创建表

SQL>CREATE TABLE city (item INTEGER,qty INTEGER,

store_name VARCHAR(30),city VARCHAR (20),

sale_date DATE)

PARTITION BY LIST (city)

(PARTITION region_east

VALUES ('hangzhou','shanghai')

TABLESPACE A1,

PARTITION region_west

VALUES ('chengdu','chongqing')

TABLESPACE A2,

PARTITION region_south

VALUES ('guangzhou','guilin')

TABLESPACE A3);

PARTITION  BY  LIST  表示按列表进行划分

PARTITION 指定分区的名字

TABLESPACE 指定分区存放的表空间

你可能感兴趣的:(oracle)