集簇

简介:
集簇是一组表的集合,这些表有一个共同的列。对表进行集簇时需要注意下面的原则:
 对于应用程序连接语句中经常用在一起访问的表可以考虑创建集簇;
 那些很少进行连接的表不要创建聚合;
 如果应用程序经常对某个表进行全表扫描也不要创建集簇;
 如果经常选择主表和子表,则要创建集簇;
 如果表中具有相同的键值,但是这些键值占空间超过1个或2个数据块时,不宜创建
集簇;
 如果各个键值对应的行差异太大就不宜创建集簇。
例1。下面语句创建一个集簇(cluster)名字为 personnel,它带的索引键列(cluster key column)
为department_number。一个集簇大小是512字节:

CREATE CLUSTER personnel
( department_number NUMBER(2) )
SIZE 512
STORAGE (INITIAL 100K NEXT 50K);
例2。加表到建立好的集簇里去。这里将emp和dept表加到personnel集簇中:
dept tables to the cluster:
CREATE TABLE emp
(empno NUMBER PRIMARY KEY,
ename VARCHAR2(10) NOT NULL
CHECK (ename = UPPER(ename)),
job VARCHAR2(9),
mgr NUMBER REFERENCES scott.emp(empno),
hiredate DATE
CHECK (hiredate < TO_DATE (’08-14-1998’, ’MM-DD-YYYY’)),
sal NUMBER(10,2) CHECK (sal > 500),
comm NUMBER(9,0) DEFAULT NULL,
deptno NUMBER(2) NOT NULL )
CLUSTER personnel (deptno);
CREATE TABLE dept
(deptno NUMBER(2),
dname VARCHAR2(9),
loc VARCHAR2(9))
CLUSTER personnel (deptno);
例3. 下面语句在集簇键personnel上创建一个集簇索引(cluster index)
CREATE INDEX idx_personnel ON CLUSTER personnel;
当创建完集簇索引(cluster index)后,就可以往emp和dept表中插入数据了。


Hash 簇
哈希集簇(Hash Clusters)也是一种类似于集簇表的方法。但在等价查询中比一般的索引表
或索引集簇(index cluster)还要好。
哈希集簇由一个哈希函数对每行的键值来使用表数据。所有行的相同键值在硬盘中被存放在
一起。
何时创建Hash 簇
是否创建哈希集簇,主要考虑下面原则:
 对那些在使用中经常被访问的列,并且这些列经常使用等式的一组表可以创建哈希聚
合。
 对于非定的集簇键,如果空间能容纳下将来所存放的所有行才能创建哈希集簇。
 如果空间不足,不要考虑创建哈希集簇。
 如果在应用经常采用全表扫描,则不要创建哈希集簇。
 那些经常被修改集簇键值的表不宜创建哈希集簇。

 创建Hash 簇
使用CREATE CLUSTER 语句再后面加 HASHKEYS 保留字就可以创建哈希集簇。见下面例子:
例1.创建哈希集簇(Hash Cluster ) :
下面语句创建一个哈希集簇名字为personnel ,集簇键列为department_number,哈希键值最大
为500字节;每个键值为512字节:
CREATE CLUSTER personnel
( department_number NUMBER )
SIZE 512 HASHKEYS 500
STORAGE (INITIAL 100K NEXT 50K);
这个例子忽略了 HASH IS 子句,这样Oracle就使用内部哈希函数来创建这个集簇。
例2.创建哈希集簇(Hash Cluster ) :
下面语句创建一个哈希集簇名字为personnel ,集簇键列由home_area_code和home_prefix组
成,并且为这两个列使用了哈希函数:
CREATE CLUSTER personnel
( home_area_code NUMBER,
home_prefix NUMBER )
HASHKEYS 20
HASH IS MOD(home_area_code + home_prefix, 101);
目录
相关文章
|
6月前
|
Java 关系型数据库 MySQL
基于java swing和mysql实现的仓库商品管理系统(源码+数据库+运行指导视频)
基于java swing和mysql实现的仓库商品管理系统(源码+数据库+运行指导视频)
144 0
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
480 1
错误:依赖检测失败: mysql-community-libs(x86-64) >= 5.7.9 被 (已安裝) mysql-community-li
错误:依赖检测失败: mysql-community-libs(x86-64) >= 5.7.9 被 (已安裝) mysql-community-li
515 0
|
SQL 弹性计算 Cloud Native
分布式事务 GTS 的价值和原理浅析
GTS 今年双 11 的成绩 今年 2684 亿的背后,有一个默默支撑,低调到几乎被遗忘的中间件云产品——GTS(全局事务服务,Global Transaction Service),稳稳地通过了自 2014 年诞生以来的第 5 次“大考”。
4088 14
分布式事务 GTS 的价值和原理浅析
|
Java Apache Maven
NoClassDefFoundError 排查思路
1.问题场景 school-1.1.0.jar中没有Student类。 school-1.1.1.jar中有Student类。虽然在pom中指定了引入的是school-1.1.1.jar,但可能maven打包后只有school-1.1.0.jar而没有school-1.1.1.jar。那么运行时就会报错java.lang.NoClassDefFoundError。 2.命令 #
2357 0
|
2天前
|
人工智能 自动驾驶 大数据
预告 | 阿里云邀您参加2024中国生成式AI大会上海站,马上报名
大会以“智能跃进 创造无限”为主题,设置主会场峰会、分会场研讨会及展览区,聚焦大模型、AI Infra等热点议题。阿里云智算集群产品解决方案负责人丛培岩将出席并发表《高性能智算集群设计思考与实践》主题演讲。观众报名现已开放。
|
19天前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
|
22天前
|
存储 人工智能 调度
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。
|
14天前
|
并行计算 前端开发 物联网
全网首发!真·从0到1!万字长文带你入门Qwen2.5-Coder——介绍、体验、本地部署及简单微调
2024年11月12日,阿里云通义大模型团队正式开源通义千问代码模型全系列,包括6款Qwen2.5-Coder模型,每个规模包含Base和Instruct两个版本。其中32B尺寸的旗舰代码模型在多项基准评测中取得开源最佳成绩,成为全球最强开源代码模型,多项关键能力超越GPT-4o。Qwen2.5-Coder具备强大、多样和实用等优点,通过持续训练,结合源代码、文本代码混合数据及合成数据,显著提升了代码生成、推理和修复等核心任务的性能。此外,该模型还支持多种编程语言,并在人类偏好对齐方面表现出色。本文为周周的奇妙编程原创,阿里云社区首发,未经同意不得转载。