暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle 集群表简单说明

原创 不吃草的牛_Nick 2023-05-29
202

群是利用表之间相似列,物理存储在一起的两个或多个表。例如,如果两个表有一个相同的列并且经常需要将这两个表联结在二起,那么最好在同一个数据块中存储共同的列值。群的目的是减少磁盘I/O从而增加联结相关表时的访问速度。但是,因为需要用更多的块来存储多个表的数据,所以集群会降低INSERT语句的性能。

要创建集群表,必须先创建群。下面的例子创建了一个名为emp_dept的群,它存储emp和dept表, 由deptno列聚集:
create cluster emp_dept(deptno number(3)) tablespace users;

你可以创建两个表emp和dept,这些表是该群的组成部分,如下所示:
CREATE TABLE dept
(
deptno NUMBER(3) PRIMARY KEY
)
CLUSTER emp_dept(deptno);

CREATE TABLE emp
(
empno NUM8ER(5) PRIMARY KEY,
ename VARCHAR2(15) NOT NULL,
deptno NUM8ER(3) REFERENCES dept
)
CLUSTER emp_dept(deptno);

应该确保群中只包含那些被应用程序在联结语句中经常访问的表。


散列群
可以创建散列群并在群中存储表,可以根据散列函数的结果来检索行。要想査找行值,只要查找一个群键值的散列值,就可以通过散列函数来获取该值。散列值指向散列群中的数据块,一个I/O就可以得到行数据,因此得到更高效的性能。

创建散列群:
CREATE CLUSTER empdept(deptno NUMBER(3))
TABLESPACE users
HASH IS deptno HASHKEYS 200;

一旦创建了散列群之后,创建群表的过程就如同在一般群中一样。HASHKEYS值指定了可以由散列函数生成的唯一散列值的最大数量。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论