PLSQL_Oracle簇表和簇表管理Index clustered tables(案例)

2012-06-08 Created By BaoXinjian

图片 1一、摘要


簇表是Oracle中一种可选、的囤积表数据的点子。使用簇表能够减弱磁盘I/O,革新访问簇表的联合所拉动的能源开发,本文讲述了簇表的原理、创造以及管理簇表等。

 

1.簇表

由共享相同数据块的一组表组成。在堆表的军事管制进程中,对于有个别表的一点列和其余的表的一些列平日被用来统一使用,可以将那个表的联结列作为共享的国有列而将那几个表组成在一块。

那就是簇表形成的案由。例如,scott形式中,有emp表,dept表,五个表平日选择deptno列来举办合并,

为此,大家共享deptno列,将emp和dept表组成簇表。组成簇表后,Oracle物理将官emp和dept表中有关逐个单位全数行存储到平等的多少块中。

簇表无法平等SQL server中的簇索引,两者并不是一回事。

SQL server中的簇索引是驱动行的仓储按索引键来储存,类似于IOT表。

2.簇键

簇键是列或多列的组成,为簇表所共有

在创制簇时内定簇键的列,以后在创制伸张的簇中的每一种表时,内定相同的列即可

各类簇键值在簇和簇索引中仅仅存储一回,与不一致表中有有稍许那样的行无关

3.选拔簇表的益处。

缩减磁盘I/O,裁减了因采纳联结所牵动的种类开发

节省了磁盘存储空间,因为本来要求独自存放多张表,以往得以将联合的一对作为共享列的仓储。

4.曾几何时创制簇表

对此时常查询、当DML较少的表

表中的记录平时利用到统一查询

5.创立簇表的步调

创建簇

创造簇索引

创建簇表

6.创制簇、簇键、簇表时考虑的标题

如何表适用于创造簇

对于创立簇的表哪些列用作簇列

始建簇时数码块空间如何利用(pctfree,pctused)

平均簇键及相关行所需的空中大小

簇索引的职分(比如存放到区其他表空间)

预估簇的轻重缓急

 

图片 2二、解析


 

create cluster emp_dept_cluster(deptno number(2))
pctused 80
pctfree 15
size 1024
tablespace users; 

 

create index emp_dept_cluster_idx
on cluster emp_dept_cluster;

 

create table dept
(deptno number(2) primary key,
 dname varchar2(14),
 loc   varchar2(13)
) 
cluster emp_dept_cluster(deptno);   --使用了cluster关键字后面跟簇名、簇列

 

create table emp
(empno number primary key,
 ename varchar2(10),
 job varchar2(9),
 mgr number,
 hiredate date,
 sal number,
 comm number,
 deptno number(2) references dept(deptno)
)
cluster emp_dept_cluster(deptno);  --使用了cluster关键字后面跟簇名、簇列

 

select object_name,object_type,status
from user_objects order by object_name ;

 

begin
for x in ( select * from scott.dept )
loop
  insert into dept
    values ( x.deptno, x.dname, x.loc );
  insert into emp
    select * from scott.emp
   where deptno = x.deptno;
end loop;
end;
/

 

 

Thanks and Regards

转载 乐沙弥 –
http://blog.csdn.net/leshami/article/details/5925501

图片 3

相关文章