Oracle 簇
来源:互联网 发布:淘宝联盟如何省钱 编辑:程序博客网 时间:2024/06/07 07:11
索引(Indexing)包含了创建了独立的结构来帮你快速地定位指定的数据。 簇(Clustering)表示,通过将数据物理地定位在某些位置来优化数据库的访问。
Oracle 提供了两种基本的簇机制
a . 索引簇将来自多张表的、拥有同样键值的记录存储在一起,相当于它们已经提前做好链接了。
b. 散列簇将特定的记录存储在一个位置。该位置可以从记录的键值出发通过数学处理推导出来。
1. 索引簇
是将一张或多张表的相关记录存储在同一个数据块中的机制。理论上,这将提高表连接的速度,因为将要进行连接的记录都存储在同一个数据块中。实际上,多表索引簇的价值非常有限,只有当表几乎总是同时被引用时才会适用。,下面是索引簇的一些缺点:
1.1 : 只针对索引簇中的一张表进行全表扫描会变得更慢,因为索引簇中的其他表的记录也需要被扫描。
1.2: : 由于维护索引簇需要付出额外的开销,因此插入的速度会更慢。
1.3 : 表连接获得的性能收益可能很少(理论上)。
下面分析索引簇的结构:
2. 散列簇
如前所说,散列簇中,有一个将簇键值翻译成物理存储地址的数学转换。在Oracle散列簇中,簇键值会被翻译成散列键,拥有相同的散列键的记录会被存储在一起。这意味着Oracle可以在不检索索引(这将带来一定的IO开销)的情况下直接定位到需要的数据块。
有了散列簇,检索一条记录可能只需要访问一次数据块——包含这条记录的数据块。与此相比,使用B*Tree索引的起码需要访问四次数据块(索引头块、索引分支块、索引叶子块与表数据块).
在使用散列簇的时候需要考虑下面几点:
2.1 散列键应该具有很高的很高的基数(大量的唯一值)。 唯一键或者主键比较合适做散列键。
2.2 使用散列键查找时,通常应该考虑精确检索而不是范围检索或者LIKE条件。
下面分析散列簇结构:
散列簇的结构,word里面画的真是太丑了,不过能表达意思就好。呵呵
0 0
- Oracle簇
- Oracle 簇
- oracle 簇
- 【Oracle】Oracle表空间和聚簇
- Oracle的簇
- oracle簇的使用
- ORACLE聚簇因子
- Oracle 聚簇因子
- oracle 创建簇
- Oracle???
- oracle
- oracle
- oracle
- oracle
- oracle...
- oracle
- oracle
- ORACLE
- MySql中delimiter的作用是什么?
- Effective C++——》条款17:以独立语句将newed的对象置入智能指针
- 给Jquery添加alert,prompt方法,类似系统的Alert,Prompt,可以响应键盘,支持拖动
- Oracle索引之索引组织表(IOT)
- 关于Oracle索引中的空值
- Oracle 簇
- hdu 1016 Prime Ring Problem 搜索
- Oracle优化之应用设计与实现
- Oracle优化之优化器的优化
- Oracle优化之执行计划管理
- Oracle优化之表访问调优
- C++ 中各种map的使用
- Oracle优化之联结与子查询
- Effective C++——》条款18:让接口容易被正确使用,不容易被误用