技术标签: oracle
from:http://blog.csdn.net/pioayang/article/details/23758695
oracle压缩技术分为基本表压缩(basic table compression),OLTP表压缩(OLTP table compression),索引压缩(index compression)和混合列压缩(hybrid columnar compression (HCC))。
basic compression从9i开始推出,是oracle的默认压缩方式。OLTP compression是11g开始推出,支持所有类型的DML操作的数据压缩。压缩会节省磁盘空间,但可能会增加CPU资源的消耗。本文主要讨论常用的basic和LTOP压缩,索引压缩和HCC可以参考oracle其它文档。表压缩技术适合OLAP系统和OLTP系统中数据变化很小的历史表,不适合频繁DML操作的表
以OLTP压缩为例,引用参考文档4的说明,原理如下
请看一个 ACCOUNTS 表,它包含以下记录:
在数据库内部,假定一个数据库块包含上述所有行。
解压缩的块看上去是这样的:记录中的所有字段(列)都包含数据。压缩此块时,数据库首先计算在所有行中发现的重复值,将这些值移出行外,然后将其放在块的头部附近。行中的这些重复值将被替换为一个表示其中每个值的符号。从概念上讲,它看上去如下图所示,您可以看到压缩前后的块。
注意这些值是如何从行中取出并放入顶部称为“符号表”的特殊区域中的。列中的每个值都被分配一个符号,此符号将替代行内的实际值。由于符号所占空间小于实际值,因此记录大小也远远小于初始值。行中的重复数据越多,符号表和块越紧凑。
由于压缩作为触发事件发生,而不是在插入行时发生,因此在正常的 DML 进程中压缩对性能没有任何影响。压缩被触发后,对 CPU 的需求肯定会变得很高,但在其他任何时间 CPU 影响都为零,因此压缩也适用于 OLTP 应用程序,这是 Oracle Database 11g 中压缩的平衡点。
除了减少空间占用外,压缩数据还将缩短网络传输时间、减少备份空间,并使在 QA 和测试中维护生产数据库的完整副本变得切实可行。
下面通过具体的实验来看basic压缩和OLTP压缩的效果和异同点。
basic compression的6组实验,来比较各种情况下的表压缩
结果分析:
从上可以看出,
basic compression
在CATS,insert /*+append*/和move compress操作会对数据进行压缩。而alter table compress操作会修改表的压缩属性,但不会对已有数据进行压缩,对压缩表做普通的insert操作也不对对数据进行压缩。压缩表的PCT_FREE为0,说明oracle设计基本压缩表的目的就是认为此类表以后会很少修改
使用OLTP压缩分别做以下6组实验
表占用空间的大小
转化为压缩表的3方法
1. ALTER TABLE … COMPRESS FOR OLTP
此方法对现有数据不压缩,对以后的DML语句相关数据进行OLTP压缩
2. Online Redefinition (DBMS_REDEFINITION)
对现有和以后的数据均压缩。使用DBMS_REDEFINITION可以在线对表进行操作,可以使用并行操作。分区表的global index是个例外,需要在线重定义之后重建索引
3. ALTER TABLE … MOVE COMPRESS FOR OLTP
对现有和以后的数据均压缩。在move过程中,会对表加排它(X)锁,DML操作会被阻塞,可以使用并行提高性能。move操作会导致索引失效,因此move之后需要重建索引。move操作可以改变segment的表空间
参考文档
http://blog.csdn.net/tianlesoftware/article/details/8170488
http://allthingsoracle.com/compression-oracle-basic-table-compression/
Advanced Compression with Oracle Database 11g
http://www.oracle.com/technetwork/cn/articles/oem/11g-compression-198295-zhs.html
文章浏览阅读418次。第二十二关cookie编码注入!当我使用")编码后放入cookie中去请求发现报错了!说明很可能是")闭合的没注入成功,试一下 " , ’ , ‘)这几种情况吧 或不输入单引号和双引号把爱" and extractvalue(1,concat(’^’,(select database()),’^’)) --+ 注入失败" and extractvalue(1,concat(’^’,(select database()),’^’)) # 注入成功这里发现一个问题,在cookie注入时,使用–_sqlilabs第22
文章浏览阅读1.6w次,点赞55次,收藏101次。系列文章目录这几年相信大家知道STM32系列的芯片价格翻倍的涨,自己玩都快玩不起了,要是用于生产,这得多掏多少钱!所以现在大家都选择了国产芯片,哈哈不能说多差吧!价格你没得说。 这是我的一次APM32代替STM32的经历,你是不是也会遇到这样的坑呢?文章目录系列文章目录一、开始替换(流程)1.首先第一步找一个简单的工程,保证没有错误。警告没问题。2.寻找APM32芯片替换STM32芯片3.修改错误4.重点来了二、测试方法与结果1.测试2. SPI怎么测?总结一、开始替换(流程)&g_amp32
文章浏览阅读4.4k次,点赞4次,收藏21次。Java的进制转换 进制转换原理 十进制 转二进制: 原理: 对十进制数进行除2 运算取余。 6 --> 110 二进制 转十进制 原理: 二进制 乘以 2 的n次幂 的过程 110 ->0*20 + 1*21 + 1 * 22 0 + 2 + 4=6 _java将八进制转五进制函数
文章浏览阅读1.1k次。作为自己在大四最后一年时间学习书籍中的一本,EffectiveJava通过一周时间的完整阅读,根据自身的条件记录下重点,供自身以后学习参考借鉴_但构造完毕时,我们可以通过手工冻结对象
文章浏览阅读2.2k次。MVC :M是数据模型V是视图C是控制器Model和View是相互独立的。View只负责页面展示,Model只是数据的存储,那么也就达到了解耦和重用的目的。MVVM的优点:方便测试 便于代码的移植兼容MVC,缺点:类会增多,viewModel会越来越庞大,调用复杂度增加MVVM什么时候使用:mvvm其实是mvc的变种而已。mvvm只是帮mvc中controller做瘦身,就是把一些逻辑代码和_ios mvc和mvvm优缺点
文章浏览阅读1.3w次。第一步:引入lang和lang3的依赖:这两个包里有转换所需的工具类<dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version></dependen..._把html代码转换成java string格式,遇到换行加上\n
文章浏览阅读1.4w次,点赞16次,收藏133次。PostgreSQL是一个免费的对象·关系型数据库服务器(ORDBMS),在灵活的BSD许可证下发行。PostgreSQL开发者把它念作post-gress-Q-L。PostgreSQL的Slogan是“世界上最先进的开源关系型数据库”。“开源界的Oracle”,去O首选。PostgreSQL官网:PosetgreSQL中文社区:全球数据库排行:国产数据库排行:命令说明\password设置当前密码\q退出\h查看sql命令的解释,如\h select?_pg数据库
文章浏览阅读353次。day10【缓冲流、转换流、序列化流】今日目标IO资源的处理。finnally释放资源jdk 1.7开始的新技术 try-with-resources缓冲流提高字节流和字符流读写数据的性能的。转换流可以解决不同编码读取乱码的问题。序列化可以实现把Java对象存储到文件中去。打印流可以方便的写数据出去,支持写任意类型的数据到文件中去,非常方便和简单以及强大。属性集是一种Map集合。教学目标能够使用字节输入流读取数据到程序Input_put(buffer,offset:0,len)
文章浏览阅读3.9k次,点赞4次,收藏33次。1. 用Three.js创建你的第一个三维场景1.1 具有所有基本元素的hello world示例src/chapter-01/06-screen-size-change.html2. 使用构建Three.js场景的基本组件2.1 添加、删除、枚举、通过名字获取场景中的对象src/chapter-02/01-basic-scene.html2.2 雾化效果src/chapter-02..._threejs开发指南第三版 pdf
文章浏览阅读5.7k次,点赞4次,收藏2次。在软件这个行业里,怕是没有任何一个其话题域像开发语言这样引起争议了。对开发语言是非的争论,不单旷日持久,且深度亦是与时俱进。实现要强调下的是,在这里我们要专注的是开发语言的选择而非开发语言的优劣。从不同的视角对开发语言进行选择,其结论可能大相径庭。从项目的角度看,语言自身特性的多少,强弱往往并不成为一个关键选择因素。好比说某语言支持多重继承,而某语言不支持多重继承,但对大多项目而言多重继承这一语言_开发语言应首选
文章浏览阅读2.1w次,点赞11次,收藏36次。Q1DB::Exception: Cannot create table from metadata file /data/clickhouse/metadata/default/dwd_test.sql, error: DB::Exception: The local set of parts of table default.dwd_test doesn’t look like the set of parts in ZooKeeper: 65.88 million rows of 85.04 mi._attempt to read after eof: cannot parse int32 from string, because value is
文章浏览阅读621次。1、python的加减乘数与计算机的加减乘除几乎差不多 + - * /2、如果参数除法中有一个为浮点数结果 亦为浮点数 >>> 1.0 / 2.0 0.5 >>> 1/2.0 0.53 、 双斜线 // 实现整除的操作符 >>> 1.0 // 2.0 0.0 >>> 1 // _python表达浮点数的两种方式