Tuning 14 Using Oracle Data Storage Structures Efficiently


90% 是Heap table
Cluster 集群表,
index-organized table: 就是把索引和表 和二为一了.
partitioned table:表非常大, 逻辑上是一个大表, 每个partition 又是一个小表

rows read in groups : 是不是一起读, 可以考虑 claster 表


unclustered: 一个Block 里只存储一个表的数据
可以看到图, 集群表的多个表数据是放在一个block上的.


首先创建一个集群, 创建cluster时可以指定存储信息, 注意在这个集群中的表就不要再指定存储信息了.



注意下边的 cluster mycluster(deptid);


hash函数得到的block时, 如果不同的key得到相同的block, 那么这时候就会有一个 overflow block 链表, 即多个数据的指针放在了这个block里, 所以好的hash函数会尽量较少这种数据间的”碰撞”










按照RANGE 来分区时, 可能数据不均匀, 比如上边的例子, 可能2009年多一些, 2010年少一些.
hash 我们无法控制某个数据放在某个分区, 是 oracle 帮我们分区的.
10g 以后也支持 global indexes 了

分区的个数, oracle 推荐 2的幂次方倍


可以看到分配的比较均匀, 并且数据时随机分布的, 以上是按照empno来进行hash的, 我们并没有看到什么规律.

很多值是离散的, 比如中国的省, 赣, 湘, 黑, 吉, 辽 等, 这些值是离散的, 没有办法向 range来进行比较, 所以list分区和range很相似, 只是它的值没有办法比较, 而是全部列出来.



把上面3种基本的分区组合起来, 目前分区是一维方式, 我们还可以在一个分区上再进行分区, 分出子分区, 这种情况用于特别大的表, 比如分区以后这个表还是非常非常的大, 那么我们还可以进行分出子分区.

partion在这里类似一个容器, 是一个逻辑概念。 它是用来存储
真正存储数据的是 subpartition.

local partioned index (OLAP)

global partion index (OLTP)

global norpartion index

local index
a,b 只表中的列
global nopartion index
data 也是表中的列
global partion index


说白了就是在做查询时, 能够锁定在某个Partion中查找.
select * from range1 where a=1 and b=1;

Pstart , Pstop 表示起始 partion 和 结束 partion
所以这个查询语句就指搜索了一个partion.




Tuning 14 Using Oracle Data Storage Structures Efficiently的更多相关文章
- Manipulating Data from Oracle Object Storage to ADW with Oracle Data Integrator (ODI)
0. Introduction and Prerequisites This article presents an overview on how to use Oracle Data Integr ...
- Data storage on the batch layer
4.1 Storage requirements for the master dataset To determine the requirements for data storage, you ...
- Oracle Schema Objects——Tables——Oracle Data Types
Oracle Schema Objects Oracle Data Types 数据类型 Data Type Description NUMBER(P,S) Number value having a ...
- 转 使用隐含Trace参数诊断Oracle Data Pump故障
http://blog.itpub.net/17203031/viewspace-772718/ Data Pump数据泵是Oracle从10g开始推出的,用于取代传统exp/imp工具的数据备份还原 ...
- Oracle Data Guard的配置
概述 Oracle Data Guard 是针对企业数据库的最有效和最全面的数据可用性.数据保护和灾难恢复解决方案.它提供管理.监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数 ...
- 【原】Configuring Oracle Data Guard In Physical Standby Database
作者:david_zhang@sh [转载时请以超链接形式标明文章] http://www.cnblogs.com/david-zhang-index/p/5042640.html参照文档:https ...
- Oracle Data Guard
DG 是 Oracle Data Guard 的简称.也就是Oracle11g的 数据卫士. 由于在工作中 Oracle和 SQL SERVER2008 同时都需要维护管理.给我的感觉这里的 DG 其 ...
- (转)Oracle Data Guard学习
一.Data Guard提供如下三种数据保护模式: 1)最高保护模式(Maximum Protection) 这里的”最高保护“是指最大限度的保护数据不丢失,也就是至少有一个standby和prima ...
- 14.9 InnoDB Row Storage and Row Formats InnoDB 行存储和行格式:
14.9 InnoDB Row Storage and Row Formats InnoDB 行存储和行格式: 14.9.1 Overview of InnoDB Row Storage 14.9.2 ...
随机推荐
- java 过滤器补充
多个Filter按照在配置文件中配置的filter顺序执行. 在web.xml文件中配置该Filter,使用init-param元素为该Filter配置参数,init-param可接受如下两个子元素: ...
- Linux内核project导论——linux学习和职业曲线(刚開始学习的人,中级,高级都可參考)
Linux世界介绍 给自己定级 门外汉: 不会安装操作系统 不会用虚拟机(安装和使用) 入门级: 熟悉常见的发行版,甚至装过而且能用一些特殊发行版(比如kali)做过一些简单的图形界面的使用. 会一些 ...
- vector iterator not incrementable For information on how your program can cause an an assertion Failure, see the Visual c + + documentation on asserts
#include <list> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { list<int> sl ...
- VS提示无法连接到已配置的开发web服务器的解决方法
VS2013每次启动项目调试好好的,今天出现了提示“提示无法连接到已配置的开发web服务器“,使用环境是本地IISExpress,操作系统为windows10,之前也出现过就是重启电脑又好了,这次是刚 ...
- MyCAT学习总结
MyCAT介绍 简单的说,MyCAT就是: 一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务.ACID(指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一 ...
- python——python数据结构之栈、队列的实现
这个在官网中list支持,有实现. 补充一下栈,队列的特性: 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIF ...
- TI BSL in python
今天花了一下午在这个上面,被这个工具整没脾气了快.花点功夫记录一下. 代码是在linux下下过来的: bzr branch lp:python-msp430-tools 看了下,有我想要的器件.然后想 ...
- git push --set-upstream origin
设置本地分支追踪远程分支 之后就可以直接使用git push提交代码
- js实现页面跳转的两种方式
CreateTime--2017年8月24日08:13:52Author:Marydon js实现页面跳转的两种方式 方式一: window.location.href = url 说明:我们常用 ...
- CSS3实现加载中的动画效果
本篇文章由:http://xinpure.com/css3-implementations-of-loading-an-animation-effect/ Loading 的菊花图形组合的不太好,基本 ...