簇由一组共享多个数据块的多个表组成,它将这些表的相关行一起存储到相同数据块中,这样可以减少查询数据所需的磁盘读取量。创建簇后,用户可以在簇中创建表,这些表称为簇表。

例如有如下两个表:student和achievement.。其中,student表存储学生信息,需要使用SID字段(存储学生ID);achievement表存储学生成绩信息,也需要使用SID字段。也就是说,student和achievement需要共享学生ID数据块。

注意:如果用户在自己的模式中创建簇,则必须具有create cluster权限和unlimited tablespace系统权限;如果想在其他模式中创建簇,则还必须具有create any cluster系统权限

创建簇和簇表

创建簇

创建簇,需要使用create cluster语句,例如创建一个名为stu_ach的簇,如下:
[sql] view plain copy
  1. create cluster stu_ach(sid number)
  2. pctused 40
  3. pctfree 10
  4. size 1024
  5. storage
  6. (initial 128k
  7. next 128k
  8. minextents 2
  9. maxextents 20
  10. )tablespace huizhi;

上面创建簇stu_ach时,指定通过SID字段来对簇中的表进行聚簇存储,这个SID字段就可以称之为聚簇字段。

注意:size子句用来为聚簇字段提供指定的数据块数量。例如,将size设置为1024,即表明簇中的聚簇字段记录只能存储在1024个数据块中。

创建簇表

创建簇表,需要使用cluster子句指定所使用的簇和簇字段。
例如,在stu_ach簇中创建两个簇表:student和achievement。如下:
[sql] view plain copy
  1. create table student(
  2. sid number,
  3. sname varchar2(8),
  4. sage number
  5. )
  6. cluster stu_ach(sid);
  7. --表已创建
  8. create table achievement(
  9. aid number,
  10. score number,
  11. sid number
  12. )
  13. cluster stu_ach(sid);
  14. --表已创建

上例在创建student和achievement表时,使用cluster子句指定它们所使用的簇为stu_ach,所使用的簇字段为SID。

提示:将student和achievement两个表组成一个簇后,在物理上oracle会将这两个表中每个学生的学生信息和该学生的所有成绩信息存储到相同的数据块中。
现在向student表中添加记录,如下:
[sql] view plain copy
  1. insert into student values(1,'小明',24);

发现还无法向簇表中添加记录。

注意:为了能够向簇表中添加记录,还需要首先为簇建立索引。

创建簇索引

簇索引与簇表不同,它并不存在于簇中,而是与普通索引一样需要具有独立的存储空间。
例如,为簇stu_ach建立一个簇索引,如下:
[sql] view plain copy
  1. create index stu_ach_index
  2. on cluster stu_ach
  3. tablespace huizhi;

上例为簇stu_ach建立了一个名为stu_ach_index的簇索引。创建簇索引后,就可以向簇表中添加记录了。

管理簇

对一个簇的管理主要是修改簇和删除簇。如果用户想要管理簇,则必须具有alter any cluster系统权限。

修改簇

修改一个簇,主要是修改簇的如下属性值:
1.物理存储属性,包括pctfree、pctused、initrans、maxtrans和storage。
2.为了存储簇键值的所有行所需空间的平均值size。
3.默认的并行度。

删除簇

1.删除一个空簇:当一个簇中不包含簇表时,删除该簇可以使用drop cluster cluster_name语句。
2.删除一个含有簇表的簇:需要使用drop cluster...including tables语句,如下
[sql] view plain copy
  1. drop cluster stu_ach including tables;

另外,如果某个簇含有簇表,并且有外键约束,则需要使用drop cluster...including tables cascade constraints语句删除该簇。如下:

[sql] view plain copy
  1. drop cluster stu_ach including tables cascade constraints;

oracle的簇与簇表相关推荐

  1. oracle中的聚簇,Oracle数据库的聚簇技术

    聚簇是根据码值找到数据的物理存储位置,从而达到快速检索数据的目的.聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点.非聚簇索引的顺序与数据物理排列顺序无关,叶节点仍然是索引节点,只不过有一个指 ...

  2. Oracle 数据库的聚簇技术

    1. 什么是聚簇 聚簇是根据码值找到数据的物理存储位置,从而达到快速检索数据的目的.聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点.非聚簇索引的顺序与数据物理排列顺序无关,叶节点仍然是索引节 ...

  3. Oracle表里的照片怎么导出来,如何导出oracle数据库中某张表到excel_oracle数据库表格导出到excel...

    如何将oracle数据库表字段导成excel表格 这个你只要用ADO连oracle并获取记录集,根据你用的编程语言打开EXCEL,然后操作EXCEL对象的工作表就可以了.以VB为例: 1.在工程中引用 ...

  4. 创建emp表 oracle,Oracle中创建和管理表详解

    Oracle中创建和管理表详解 更新时间:2013年08月01日 15:44:16   作者: 以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下 SQL> /* ...

  5. oracle返回表id,在Oracle的函数中,返回表类型的语句

    Oracle的function中怎么返回表变量? 太晚了,过多的理论知识就不说了,下面简单地说实现吧!.. 1.创建表对象类型. 在Oracle中想要返回表对象,必须自定义一个表类型,如下所示: 复制 ...

  6. Oracle数据库用户角色、表空间创建、删除命令

    Oracle数据库用户角色.表空间创建.删除命令 //创建数据表空间 create tablespace BCC datafile 'D:\oracle\oradata\BCC\BCC.dbf' si ...

  7. oracle分区list,Oracle 分区表中存在range-list表分区时遇到问题及解决办法

    Oracle 分区表中存在range-list表分区时遇到问题及解决办法 我们遇到的通常是list分区这种居多,我就不介绍了. 以下解决的是 复合分区情况 表已存在,需要在范围分区中增加一个分区 我们 ...

  8. 给oracle用户赋权限导入导出,Oracle常用命令-用户、表空间、赋权限、导入导出...

    1.1   删除表空间 drop tablespace QBKJ including contents and datafiles; 1.2   删除用户 drop user admin cascad ...

  9. Oracle Study案例之--基于表空间的时间点恢复(TSPITR)

     Oracle Study案例之--基于表空间的时间点恢复(TSPITR) TSPITR(表空间时间点恢复)用于将一个或多个表空间恢复到过去某个时间点的状态,而其他表空间仍然保持现有状态. TSPIT ...

最新文章

  1. 2、redis.conf基本配置项说明
  2. Jupyter Notebook显示图像
  3. “CObject::operator =”: 无法访问 private 成员(在“CObject”类中声明)
  4. dockerfile arg_Dockerfile最佳实践
  5. TDL(HDU-6641)
  6. python set集合_Python字典(dict)和集合(set)
  7. 用StreamReader读取服务器端文本文件,或远程网页
  8. 深入浅出之正则表达式(转载)
  9. 大数据从入门到就业的四个必备常识
  10. QT5之MYSQL操作
  11. caffe编译好后,需要配置.bashrc
  12. TDA2030功放电路图
  13. 网络工程毕业设计之--校园网络规划与设计
  14. 简述 mybatis 事务的使用
  15. Redis详情教学加源码,欢迎大家来下载
  16. 计算机毕业设计springboot+vue基本微信小程序的社区疫情防控系统
  17. CMDN Club每周精选(第1期)
  18. 【BlockingQueue】BlockingQueue接口方法说明和区别
  19. 学习使用master.dbo.spt_values表
  20. 技嘉1080显卡体质测试软件,技嘉GTX1080 Xtreme Gaming显卡评测:创新的重峦式三风扇...

热门文章

  1. SCSI 总线和协议
  2. 多图指南——微信小程序设计规范
  3. 15年资深产品经理判官:怎样搭建完整的产品矩阵
  4. 别研究买房了,墓地你研究过吗?
  5. PMCAFF | 一个CRM产品大神的产品之路
  6. PMCAFF微分享 | 阿檬:如何设计好工具型软件?产品经理必备技能
  7. 活动 | 壁咚小咖,霸道表白!分享我和PMcaff一起成长的故事
  8. Linkedin Cruise Control安装
  9. 如何科学的进行信息安全投入:信息安全不是火箭科学
  10. JAVA集合泛型,类型擦除,类型通配符上限之类的知识点