oracle--压缩
来源:互联网 发布:Ubuntu matlab安装教程 编辑:程序博客网 时间:2024/05/07 12:33
一:data block compression
ORACLE数据库使用table compression来消除数据块中的重复值。
原理:简单来说,就是在数据块的开始保存了一个symbol table以存储数据块中重复的行和列的信息,然后在行中只会用这些symbol来标识这些重复的行和列的信息。如下图:
压缩前的数据:
压缩后的数据:
二:key compression
key compression是用来压缩索引的leaf block。而branch block可以被truncate,但不可以被压缩。
原理:每个索引键都包含两部分的内容:grouping piece和unique piece,进行压缩后其两部分分别对应为prefix entry和suffix entry。可以在创建索引的时候指定prefix length的值。
假如一个索引键为“online,0,AAAPvCAAFAAAAFaAAa”,其grouping piece为“online,0”(建立索引的列),而suffix entry为“AAAPvCAAFAAAAFaAAa”(ROWID)。对该索引键压缩后,假如grouping piece有重复的几行,则压缩后只会保留一个grouping piece,这就是prefix entry,而不相同的这些rowid就是suffix entry。具体如下:
压缩前:
压缩后(部分):
压缩后(prefix length为1):
三:table compression
table compression可以降低储存空间、内存的使用,有时还可以加快查询的执行。
table compression分为两种类型:
1、Basic and OLTP Table Compression
这两种都是基于数据字典的,其对于堆表具有很好的压缩比率。其采用的是row-major format,也就是同一行的数据全部保存在一起,然后接着下一行。从数据块级别来理解,也就是之前第一点中所说的data block compression。这两种可以在表空间、表、分区、子分区这几个级别中进行定义。压缩之后的数据块跟普通的数据块差不多。
Basic compression
这种类型的压缩主要用于数据的批量加载操作,只用使用direct path load、alter table....move和online redefination来实现basic compression.这种压缩类型不会对conventional DML操作的数据进行压缩。实现语句为....COMPRESS BASIC;
OLTP table compression:
这种数据类型的压缩主要用于OLTP,也就是conventional DML操作的数据进行压缩。实现语句为.....COMPRESS FOR OLTPCOMPRESS;
2、Hybrid Columnar Compression
Hybrid Columnar Compression所采用的不是row-major format,而是both row and columnar methods,其会把一组数据行中相同的列保存在一起。Hybrid Columnar Compression采用了一种叫Compression Units的逻辑结构,其将相同的列值存储在一起,然后根据列的类型、列的基数以及用户选择的压缩水平来选择算法来对这些列数据进行压缩。如下图:
如上图,每一个compression unit会横跨多个数据块,而特定的列可能会横跨多个数据块。
另外需要注意的是,当锁定Compression Units中的其中一行的时候,会隐式锁定Compression Units中的所有行,因此会降低并发性。
Hybrid Columnar Compression具有两种类型:
1.Warehouse compression
2.Online archival compression
这两种类型需要通过direct path load、alter table....move和online redefination来实现。
---------------------------------------------------------------------------------------------------
如有错误,欢迎指正
技术交流QQ:1732035211
技术交流邮箱:1732035211@qq.com
新浪微博:数据库小菜鸟http://weibo.com/u/3132578390
- ORACLE 压缩
- oracle--压缩
- oracle压缩表表空间
- ORACLE 表空间压缩
- ORACLE备份中的压缩
- Oracle压缩表表空间
- oracle压缩表表空间
- Oracle表压缩
- Oracle OLTP表压缩
- Oracle压缩数据表
- oracle定时备份压缩
- ORACLE 表压缩
- Oracle的数据表压缩
- oracle 索引压缩
- oracle 表压缩 介绍
- oracle 压缩索引
- oracle 表压缩技术
- oracle压缩表
- 用OpenCV求解最大连通域
- 数论之神 god of number theory
- 黑马程序员 java高新技术<三>--java5的注解、java5的泛型
- OpenCV实现图像的旋转
- POJ 1036 Gangsters -- 常规dp 题意好难懂啊
- oracle--压缩
- 黑马程序员 java高新技术<四>--类加载器、动态代理技术的深入讲解与应用
- OpenCV中響應鼠標消息
- C++一些注意点之new和malloc
- 十六进制RGB颜色名称对照表
- 黑马程序员_day09_继承和抽象
- Deep learning:三(Multivariance Linear Regression练习)
- OpenCV中如何累加多幅图像并取平均值
- 钢带缺陷在线检测系统