您在这里:首页 > 学员专区 > 技术文章
Oracle视频
Oracle
CUUG课程

管理表(七)--分区表及簇表的建立

 

1、分区表:(>2G)对大表进行优化   (Range Partitioning,List PartitioningHash Partitioning,Composite Partitioning)

——按range 建立分区表

1  create table sales_range

2  (salesman_id number(5),

3   salesman_name varchar2(30),

4   sales_amount number(10),

5   sales_date   date)

6  partition by range(sales_date)——指定分区的指标

7  (partition p1 values less than(TO_DATE('04/01/2011','MM/DD/YYYY')) tablespace lx01,

8  partition p2 values less than(TO_DATE('07/01/2011','MM/DD/YYYY')) tablespace lx02,

9  partition p3 values less than(TO_DATE('10/01/2011','MM/DD/YYYY')) tablespace lx03,

10  partition p4 values less than(TO_DATE('01/01/2012','MM/DD/YYYY')) tablespace lx04)

11* enable row movement

SQL> /

Table created.

SQL> insert into  sales_range  values ( 1001,'tom',1000,'2011-02-01');

1 row created.

SQL> insert into  sales_range  values ( 1002,'jerry',1000,'2011-05-01');

1 row created.

SQL> insert into  sales_range  values ( 1003,'rose',1000,'2011-08-01');

1 row created.

SQL> insert into  sales_range  values ( 1004,'john',1000,'2011-01-01');

1 row created.

SQL> insert into  sales_range  values ( 1005,'john',1000,'2011-11-01');

1 row created.

SQL> select * from sales_range partition(p1);

SALESMAN_ID SALESMAN_NAME   SALES_AMOUNT SALES_DATE

----------- --------------- ------------ -------------------

1001 tom                     1000 2011-02-01 00:00:00

1004 john                    1000 2011-01-01 00:00:00

SQL> select * from sales_range partition(p2);

SALESMAN_ID SALESMAN_NAME   SALES_AMOUNT SALES_DATE

----------- --------------- ------------ -------------------

1002 jerry                   1000 2011-05-01 00:00:00

SQL> select * from sales_range partition(p3);

SALESMAN_ID SALESMAN_NAME   SALES_AMOUNT SALES_DATE

----------- --------------- ------------ -------------------

1003 rose                    1000 2011-08-01 00:00:00

SQL> select * from sales_range partition(p4);

SALESMAN_ID SALESMAN_NAME   SALES_AMOUNT SALES_DATE

----------- --------------- ------------ -------------------

1005 john                    1000 2011-11-01 00:00:00

SQL> select * from sales_range;

SALESMAN_ID SALESMAN_NAME   SALES_AMOUNT SALES_DATE

----------- --------------- ------------ -------------------

1001 tom                     1000 2011-02-01 00:00:00

1004 john                    1000 2011-01-01 00:00:00

1002 jerry                   1000 2011-05-01 00:00:00

1003 rose                    1000 2011-08-01 00:00:00

1005 john                    1000 2011-11-01 00:00:0

2、簇:cluster (多表链接查询)【先建立簇,然后建立簇表,最后建立索引

1)建立簇

SQL> create cluster dept_emp_clu(deptno number(3))

2  pctfree 20 pctused 60

3  size 500 tablespace lx01;

Cluster created.

2)建立簇

SQL> create table department(

2  id number(3) primary key,

3  dname varchar(14),loc varchar2(13))

4  cluster dept_emp_clu(id);

Table created.

SQL> create table employee(

2  eno number(4) primary key,

3  ename varchar2(10),

4  job varchar2(9),

5  mgr number(4),

6  hiredate date,

7  sal number(7,2),

8  comm number(7,2),

9  dept_id number(3) references department)

10  cluster dept_emp_clu(dept_id);

Table created.

3)建立索引

SQL> create index dept_emp_idx on cluster dept_emp_clu ——在簇上建立索引,并将索引和簇放在不同的表空间

2  tablespace lx02;

Index created.

相关文章 [上一篇] 管理表(六)--外部表的管理
010-88589926(88587026)
CUUG热门培训课程
Oracle DBA就业培训
CUUG名师
网络课程
技术沙龙
最新动态

总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089 
中国UNIX用户协会 Copyright 2010  ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号  京公网安备110108006275号