oracle表压缩
① oracle数据库表空间占用太大,如何在不删除表的情况下缩小占用空间
alter table 表名 move和alter table 表名 shrink space都可以用来进行段收缩,降低高水位HWM,
也都可以用来消除行链接(Row Chaining)和行迁移(Row Migration),估计效果不明显,看你的数据库用途是干什么的(如果是数据仓库肯定是不明显的)。
② oracle11g和oracle10g的区别
Oracle数据库11g支持联机事务处理 (OLAP)应用程序中常用的更新、插入和删除操作的数据压缩。
以前的Oracle数据库版本支持数据仓库应用程序常用的批量数据加载操作的压缩。
Oracle数据库11gOLTP表压缩通过更加高效地使用内存来缓存数据以及减少表扫描的I/O提高了数据库性能。
利用OLTP表压缩,您可以利用最小的处理开销达到2到3倍的压缩比。
③ Oracle表压缩真的好用么
对重复字段多的,偏查询的那种还可以
④ 如何用exp导出oracle数据库并压缩
1. 它是一个可执行的文件 存放目录/ORACLE_HOME/bin
exp导出工具将数据库中数据备份压缩成一个二进制系统文件. 它有三种模式:
a. 用户模式:导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
2. 导出工具exp交互式命令行方式的使用的例子
$exp test/test123@appd
Enter array fetch buffer size: 4096 > 回车
Export file: expdat.dmp > m.dmp 生成导出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回车wQeLin
Compress extents (yes/no): yes > 回车
⑤ orcale 压缩表空间
有2种方法:
1.将你22G的表空间的DBF数据文件缩小,这样表空间就自然变小了
2. 将这个22G的表空间中得文件移到别的表空间里,然后删除表空间重新建立,最后再讲移出的表移回来,这样也能缩小表空间
⑥ 怎样压缩Oracle数据文件
如果属于一个单独的表空间不是system等,可以把表空间删除,或删除所有对象后resize数据文件
⑦ oracle 什么是compressed 表
Hybrid Columnar Compressed
首先我们要搞清楚,什么是行压缩,什么叫列压缩。我们熟悉的数据库,如Oracle,MySQL等都是基于行的数据库,就是行的不同字段物理上存放在一起,还有一种是基于列的数据库,就是每个字段的不同行物理上存放在一起。他们的优缺点同样突出:
基于行的数据库,访问一行非常方便,但是由于同一列的数据是分开存放的,如果要针对某一列进行查询时,几乎要扫描整个表才能得到结果。基于行数据库的压缩,称为行压缩。
基于列的数据库,因为同一列的数据物理上放在一起,所以访问一列非常方便,也就是说如果针对某一列进行查询时,不需要扫描整个表,只需要扫描这一列的数据就可以了,但是访问一行的全部字段非常不方便(又是废话)。基于列数据库的压缩,称为列压缩。
Oracle通常说的compress功能(包括11g R2的Advanced compress),都是行压缩,因为Oracle是个基于行的数据库。大概的方法就是在block头部存放一个symbol table,然后将相同的值放在那里,每行上相同的数据指向symbol table,以此来达到压缩的目的。行压缩的效果通常不好,因为我们知道行与行之间,其实相同的数据并不多。但是列压缩则不同,因为相同列的数据类型相同,很容易达到很好的压缩效果。
行压缩和列压缩都有其优缺点,而Oracle的混合列压缩技术,实际上是融合了列压缩的高压缩比和行数据库的访问特性,将两者的优点结合起来。Oracle提出了CU的概念(compress unit),在一个CU内,是一个基于列的存储方式,采用列压缩,但是一个CU内保存了行的所有字段信息,所以在CU与CU之间,Oracle还是一个基于行的数据库,访问某一行,总是只在一个CU内。每个CU由一些连续的block组成,CU header中记录了每一行的各个列在CU中的分布情况,在混合列压缩模式下,一行通常是跨多个block的。
所以说混合列压缩,结合了列压缩和行访问的特点,即可以提供非常高的压缩率,又很好的保证了基于行类型的访问。
Exadata的另一个重要功能是IO resource management,如果我们在一个Exadata上部署了很多个数据库,可以用它来管理IO资源,这里就不作阐述了。
目前,我还没有了解到在国内有Exadata的应用,而且资料也是比较少的。希望有机会可以真实的测试一下它的性能,我不怀疑他在DSS环境下的表现,但是对于OLTP类型的应用,是否真的象Oracle说的那么强劲,还有待于验证。
⑧ Oracle 11g 压缩表无法增加删除字段
alter table tableName move nocompress;
ok
直接alter table tableName move nocompress后能增加列,但无法增加带default值的列
设置为 move nocompress后即可,
原因暂未研究,备查
⑨ oracle清理数据后,如何缩小表空间,减小表空间文件大小
很大可能是原来表是压缩过的,再导进去就没有压缩了,要重新压缩下
⑩ Oracle11g新特性之:数据压缩技术
随着数据量的不断海量 CPU的不断强劲 双核四核的叫个不停 一种叫做时间换空间的优化技术应该会越来越流行 所以 数据压缩对于今后的数据库来说 应该会从核武器变成常规武器 Oracle从 i开始羞羞答答的引入表级压缩 一直以来都是像中国的核电站一样 宣传的用处大 论实际的贡献就不怎么样了
Oracle g似乎是正儿八经的要推广数据压缩技术了 专门推出了一个叫做Advance Compression的组件 全面支持普通表压缩 非结构化数据压缩(SecureFile数据压缩) Data Pump数据压缩 以及RMAN备份压缩 数据压缩技术从此名正言顺的登上历史舞台 既然是专门做为一个Option推出 Oracle一定是对该特性相当有信心 所以需要单独为该特性购买License
在Oracle i中虽然引入了表压缩 但是有很大的限制 只能对批量装载操作(比如直接路径装载 CTAS等)涉及的数据进行压缩 普通的DML操作的数据是无法压缩的 这应该是对于写操作的压缩难题没有解决 一直遗留到Oracle g 总算是解决了关系数据压缩的写性能问题 Oracle的表压缩是针对Block级别的数据压缩 主要技术和Oracle i差不多 还是在Block中引入symbol表 将block中的重复数据在symbol中用一个项表示 Oracle会对block进行批量压缩 而不是每次在block中写入数据时都进行压缩 通过这种方式 可以尽量降低数据压缩对于DML操作的性能影响 这样 在block级别应该会引入一个新的参数 用于控制block中未压缩的数据量达到某个标准以后进行压缩操作
SecureFile也是Oracle g新推出的一项特性 用于存储非结构化数据 SecureFile也将支持数据压缩操作 这样对于传统的LOB字段也可以进行压缩 将极大的减少大型数据库的存储空间需求 当然 有得比有失 压缩和解压时 对于CPU的要求也将更高 但是 目前CPU的发展速度明显比IO和存储空间快速的情况下 压缩是大有可为的技术 通过在压缩率和压缩效率方面的不断提升 以后应该为成为各个数据库的标准配置
除了对数据库中的数据进行压缩 Advance Compression Option还将支持备份数据的压缩 做为逻辑备份的Data Pump和物理备份的RMAN工具 都将支持该技术 在Oracle gR 中 Data Pump已经开始支持压缩源数据 Oracle g中则可以直接压缩导出文件 这样导出的时候就可以极大的减少存储空间的需求 在以前版本中 利用WinRAR等 经常可以将几个G的导出文件压缩到几十M Oracle g的白皮书上说压缩率可以达到 % 等软件出来 大家可以好好的测试一把 同样的 Oracle也在 g中开始引入RMAN的压缩技术 但是Oracle g号称采用了更先进的ZLIB要所算法 可以比Oracle g的压缩算法快上 % 空间需求也将减少 %
除了上述的数据压缩技术 Oracle g Advanced Compression Option还将引入另外一种压缩技术 我们知道在Data Guard中 需要将日志从主库传递到备库 如果主库的事务很多 则单位时间内需要传递的日志量将相当可观 如果能将这些日志压缩后在传递 然后在备库解压后应用 将极大的减少对于网络带宽的需求 从而已减少主备库的时间差
另外 Oracle的bitmap一直就是压缩存储的 g中的bitmap对于 i就有比较大的改动 通过一些细节的完善 提供更好的性能和更高的稳定性 也是oracle一贯的风格 对于bitmap在Oracle g中将如何实现 也将是非常值得关注的一个特点
lishixin/Article/program/Oracle/201311/16929