读书笔记:Oracle数据库之【分区】
来源:互联网 发布:松潘这两天网络怎么了 编辑:程序博客网 时间:2024/05/29 04:15
分区:是将一个表或索引物理的分解为多个更小、更可管理的部分。
分区的好处
1.提高数据的可用性
2.减轻管理负担
由于从数据库中将大段分解成了若干小段
3.改善某些查询的性能
在大型仓库环境中,通过使用分区可以消除很大的数据区间,从而不必考虑他们,相应的根本不用访问这些数据;但在事务性系统中并不适用,因为这种系统本身就只是访问少量的数据;
4.减少大容量OLTP系统上的竞争
可以把修改分布到多个单独的分区上即:如果一个大段遭遇激烈的竞争,可以把它分为多个小段,从而成比例的减少竞争。
表分区机制
1.区间分区
Oracle中最常用的分区机制可以指定应当存储在一起的数据区间;例如:
2016年10月所有数据存储在分区1中,2016年11月所有数据存储在分区2中;
2.散列分区
指在一个列或多个列上应用一个散列函数,数据记录会按照这个散列值存放在相应的分区中。
3.列表分区
制定一个离散值集,来确定应当存储在一起的数据。例如:
可以指定status列值在(‘A’,‘M’,‘Z’)中的行放在分区1中,status列值在(‘C’,‘D’,‘F’)中的行放在分区2中
4.间隔分区
与区间分区相似,区别在于数据库本身可以再数据到来时创建新的分区。区间分区:DBA必须在创建分区时包含(现在及未来)所有可能的值,或DBA需定期创建分区间隔分区:当无法放入根据DBA制定的规则建立的现有分区,数据库本身就会创建新的分区引用分区允许由外键强制的父子关系中的子表继承父表的分区机制。这样就能够建立子表与其附表的对等分区,而不必对数据模型进行反规范化。</div></blockquote></div><h3>6.组合分区</h3><div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>为区间分区与散列分区的一种组合,或是 区间分区与列表分区的组合。</div></blockquote></div><div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>通过组合分区,可以先对某些数据应用分区机制,再利用某种分区机制将分区分到子区间。</div><div></div></blockquote></div><h2>行移动</h2><div>alter table range_example enable row movement;--Oracle8.0中没有这样的功能,必须先删除行,再重新插入。1.如果修改确定分区的列会发生什么后果?
- 修改不会导致使用一个不同的分区,行仍属于原来的分区。
- 修改会导致行跨分区移动。只有当表启用了行移动才支持这种情况;否则,会产生一个错误。
2.行移动机制
执行行移动时,实际上在内部就好像先删除了这一行,然后再将其重新插入。这会更新这个表上的索引,删除旧的索引条目,再插入一个新条目。此时会完成delete再加一个insert的相应物理工作,但在oracle看来却还是一个更新。因此不会导致insert和delete触发器出发,只有update触发器会触发。另外,由于外键约束可能不允许,所以delete子表也不会出发delete触发器。由于行移动的开销比正常update昂贵的多,所以,系统构建应避免 频繁修改分区键,尤其是修改会导致分区移动。索引分区
■ 随表对索引完成相应的分区:
也称为“局部索引”(locally index)。每个表分区都有一个索引分区,而且只索引该表分区。一个给定索引分区中的所有条目都指向一个表分区,表分区
中的所有行都表示在一个索引分区中。
■ 按区间或散列对索引分区:
也称为“全局分区索引”(globally partitioned index)。索引按区间分区(或在10g及更高版本中还可以按散列分区),一个索引分区可能指向任何(和所有)表分区。由于全局索引只按照区间分区、散列分区,若希望使用列表分区或组合分区,则必须使用局部索引。
局部索引会使用与底层表相同的机制分区。
1.局部索引与全局索引
疑问:
1.什么是OLTP?On-Line Transaction Processing联机事务处理过程(OLTP)基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。OLTP系统参考:http://baike.baidu.com/view/277075.htm2.什么是仓库系统 ?3.OLTP与OLAP?On-Line Analytical Processing 联机分析处理(OLAP)当今的数据处理大致可以分成两大类:
- OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
- OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
1 0
- 读书笔记:Oracle数据库之【分区】
- 数据库:Oracle分区之三:索引分区
- oracle数据库学习之表分区
- 16.读书笔记收获不止Oracle之 分区索引
- oracle数据库表分区
- oracle数据库分区
- ORACLE数据库表分区
- oracle数据库和分区
- Oracle数据库分区存储
- Oracle数据库分区技术
- 数据库 Oracle分区介绍
- 数据库 Oracle分区介绍
- oracle 数据库分区
- Oracle数据库表分区
- oracle数据库表分区
- 11.读书笔记收获不止Oracle之 表设计之分区使用
- 数据库之分区设置
- Oracle数据库表分区介绍
- 【HUSTOJ】1109: 求a+b
- How to Use Android ADB Command Line Tool on mac
- ThinkPHP查询数据库表中包含在某一结果集中的所有内容
- 第十二周项目一 阅读程序,请写出这些程序的运行结果(4)
- Android源码结构分析
- 读书笔记:Oracle数据库之【分区】
- 如果二级控制器也是包含tabbar
- 考勤情况记录数据表、短信发送记录表设计
- 【java】运行java程序
- C语言——数组指针和通过指针引用数组元素的方法总结
- Android 发送广播传送数据
- 内部类的应用
- eclipse部署项目时,启动tomcat遇到Java.lang.IllegalArgumentException: Can't convert argument: null
- Spring Boot + Gradle + Websocket 构建推送服务