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

2012-06-08 Created By BaoXinjian

Oracle 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)

平均簇键及彼此关行所待的半空中大小

簇索引的职位(比如存放到不同的表空间)

预估簇的大大小小

 

Oracle 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

Oracle 3

相关文章