oracle 蔟索引,Oracle 索引簇

Oracle 索引簇

索引簇是指使用索引定义簇键列数据的方法。如果用户需要执行连接查询显示主从表的数据,则应该将主从表组织到索引簇。

1.普通表与索引簇

在建立普通表时,Oracle 会为该表分配相应的表段。例如,当建立表DEPT 和EMP 时,Oracle 会分别为这两张表分配表段DEPT 和EMP ,并且它们的数据被分别存放到这两个表段中。

如图10-7所示,表EMP 中的所有数据被存放到表段EMP 中,而表DEPT 中的数据则被存放到表段DEPT 中。因为这两个表被存放在不同位置,所以在执行连接查询语句时,至少需要扫描两数据块才能检索到关联的数据。

empno

ename

job

7954736974997521

ATG SMITH ALLEN WARD

CLERK CLERK

SALESMAN SALESMAN

deptno

dname

loc

10203040

ACCOUNTING RESEARCH SALES

OPERATIONS

NEW YORK DALLAS CHICAGO BOSTON

DEPT deptno

10203030

EMP

图10-7 普通表存放数据的方式

使用索引簇存储表数据时,Oracle 会将不同表的相关数据按照簇键值的存放在簇段中。例如,当建立索引簇EMP_DEPT 时,并将EMP 和DEPT 表组织到索引簇后,Oracle 会按照簇键DEPTNO 存放相关数据,如图10-8所示。

簇键(deptno)10

7954778278397934ATG CLARK KING MILLER ACCOUNTING

dname NEW YORK

loc

20RESEARCH DALLAS

73697566778878767902

SMITH JONES SCOTT ADAMS FORD

DEPT_EMP

图10-8 索引簇存储数据

表EMP 和DEPT 中的所有数据被存储在簇段DEPT_EMP 中。因为关联数据被存储到同一个数据块,所以当执行如下的连接查询语句检索部门为10及该部门的雇员信息时,只需要扫描一个数据块就可以检索到关联数据。在这种情况下,使用索引簇显然速度更快。

select t2.deptno,t2.dname,t2.loc,t1.empno,t1.ename from emp t1,dept t2 where t1.deptno=t2.deptno and t1.deptno=10;

2.建立索引簇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值