如何压缩oracle海量数据

“数据压缩”以前对我来说还是比较新鲜的词,并不是没有听说过,而是没有实际使用过,之前一直做项目经理工作上也设计到数据库的运维,但由于存储设计的比较充裕,在加上性能运转的还能让客户接受,所以压缩技术基本上没怎么用,当时也怕对DML操作有负面影响!之所以现在要实验这方面的技术,也是因为二期我们的数据量暴增,对机器对性能对运维都用一定的压力和冲击,这也说明了这门技术是在特定环境、特定场合下来使用的,下面我们来详细讲一讲如何去使用这门技术---海量数据之利器“压缩compress”

一、应用场合

答:正如上面所说,压缩技术一般应用在“海量数据”的范畴,在大数据量下并且重复率高的情境下应该的效果才好,适合于OLAP(报表系统)不适合OLTP(在线交易系统),当数据量小时作用还不是很大,只要数据量达到一定程度的时候使用这门技术才有意义。

二、压缩技术的好处

1.节约空间:我认为压缩技术的最大好处就是节约空间,在存储设备空间很紧张的情况下更需要使用压缩技术来缓解

2.减少memory/IO开销:当使用了压缩技术后,同等记录对应的数据块相对较少,自然而然IO开销就小了

3.提高数据处理效率:原本10个数据块的,经过压缩后变成5个数据块,但还是那些数据,可效率提高了一倍。

三、压缩原理

答:我们都用过rar压缩zip压缩,其实这些压缩的原理都很相似,当然在细微处理上有不同,数据块压缩原理上是使用长度较短符号来代替列中的每个值,由于符号占用空间小于实际值,从而达到节约空间的效果,当列中重复值越多压缩效果越好。

四、数据压缩不适合OLTP系统

1.OLTP是一种多事务短时间片系统,有大量的DML操作,而DML操作我们都知道是有锁lock的(insert  update  delete)当数据块中记录数多起来时,导致访问这个数据块的用户就多,就是产生争用和等待,从而降低了效率。

2.数据插入、更新和索引键值更新时,都要先解压缩再更新,等待的时间会更长。

五、分区表的压缩

1.分区表的每个分区都可以独立压缩

2.有些时候,分区表在创建时不设置分区压缩属性,当某个分区需要压缩时,再独立进行压缩

3.如果在表级设置压缩属性的话,那么所有分区都会启动压缩功能,反正如果是某几个分区独立压缩,表级属性上什么也不写的。

实验

create table leo_partition1 (object_id,object_name)       创建一个六个分区的分区表,没有指定压缩

partition by range (object_id)

(

partition leo_p1 values less than (1000),

partition leo_p2 values less than (2000),

partition leo_p3 values less than (3000),

partition leo_p4 values less than (4000),

partition leo_p5 values less than (5000),

partition leo_max values less than (maxvalue)

)

as select object_id,object_name from dba_objects;

LS@LEO> select count(*) from leo_partition1;

 COUNT(*)

----------

10351

LS@LEO> select partition_name,compression from user_tab_partitions where table_name='LEO_PARTITION1';

PARTITION_NAME                 COMPRESS

------------------------------ --------

LEO_MAX                        DISABLED

LEO_P1                         DISABLED

LEO_P2                         DISABLED

LEO_P3                         DISABLED

LEO_P4                         DISABLED

LEO_P5                         DISABLED

LS@LEO> alter table leo_partition1 compress;                            例如 定义表级压缩属性,此时所有分区都压缩

LS@LEO> alter table leo_partition1 modify partition leo_p1 compress;    我们测试准对leo_p1 和 leo_p5分区进行压缩,来说明分区可以独立压缩

Table altered.

LS@LEO> alter table leo_partition1 modify partition leo_p5 compress;

Table altered.

LS@LEO> select partition_name,compression from user_tab_partitions where table_name='LEO_PARTITION1';

PARTITION_NAME                 COMPRESS

------------------------------ -----------------------

LEO_MAX                       DISABLED

LEO_P1                         ENABLED

时间: 2024-11-10 00:22:29

如何压缩oracle海量数据的相关文章

ascii字符串压缩-Oracle数据库存储需要:Ascii数值型字符串压缩

问题描述 Oracle数据库存储需要:Ascii数值型字符串压缩 数值型字符串,比如:123.44 23.54 34.65....,总数大约86400个,以空格符分隔,采用什么压缩算法最为有效?压缩速度要快,压缩比率越小越好,可还原,无损! 解决方案 Ascii的值都是整形的而且范围值0到127,浮点类型可以转换吗

oracle 索引压缩

  oracle 索引压缩     oracle 索引压缩(key compression)是oracle 9i 中引入的一项新特性.该特性可以压缩索引或者索引组织表中的重复键值,从而节省存储空间.非分区的unique 索引和non-unique(至少两列)索引都能够被压缩.bitmap 索引不能够进行压缩.      在oracle 索引压缩中有几个比较纠结的术语,需要说明一下.索引压缩是通过将索引中的键值拆分成两部分实现的,也就是grouping piece 也称作prefix 和 uniq

oracle 9i 和oracle 10g 和oracle 11g区别

本文转自网络,其实这几个版本的内容有很多不同,本文只是做一个概括性说明,具体不同,我会在日后的博客中逐渐写出来. oracle 9i 和oracle 10g 和oracle 11g有什么区别??           简要说:     9i更易于管理. 详细说:     并发集群,8i OPS升级为9i RAC,8i结点间用硬盘交换信息,9i结点间采用高速网线的缓存熔合(Cache Fusion)技术交换信息,交换速度提高100倍以上.     9i可以在线修改内核参数和内存分配,8i不行.  

《Greenplum企业应用实战》一1.4 Greenplum特性及应用场景

1.4 Greenplum特性及应用场景 1.4.1 Greenplum特性 (1)支持海量数据存储和处理当今是个数据迅速增长的时代,数据量从过去的MB到GB,再到TB增长到现在的PB级规模,传统的OLTP数据库在TB级别以上的数据管理中已经捉襟见肘.Greenplum使用MPP架构,同时使用多台机器并行计算,极大地提高了对海量数据的处理能力.采取MPP架构的数据库系统才能对海量数据进行管理.(2)高性价比Greenplum数据库可以搭建在业界各种开放式硬件平台上,在硬件选型上有很强的自由性.相

在Windows 2000下优化Oracle9i性能

oracle|window|性能|优化 Windows 2000下的Oracle性能优化需要考虑磁盘I/O.CPU.网络子系统.内存几个子系统,这里着重介绍Oracle在Windows 2000环境下的内存调整. 优化磁盘配置 Oracle是一个磁盘I/O强烈的应用,要确保你恰当地配置磁盘和文件系统: 在磁盘上建立数据文件前首先运行磁盘碎片整理程序 为了安全地整理磁盘碎片,需关闭打开数据文件的实例,并且停止服务.如果你有足够的连续磁盘空间建立数据文件,那么你就很容易避免数据文件产生碎片. 不要使

大数据下,24小时精准医疗或将在2020年实现?

一款名为GTX One的生物计算加速平台现身,引发了业内对于精准医疗行业新的看法.这款GTX One加速系统,通过算法创新充分释放FPGA的计算能力,相当于将一台超级计算机压缩到一个小盒子里:一张FPGA加速卡就能达到60台高性能至强Xeon CPU服务器的计算性能,极大地缩短了生物信息数据的计算时间.事实上,通过生物数据与医疗行业结合,生物医疗行业正在经历高速发展.此次英特尔在京推出的"英特尔精准医疗伙伴计划(Intel BioIT Partners)",有望在2020年实现24小时

我想用GeoServer做服务器,分别以QGIS和World wind java为基础开发2维、3维应用,是否可行?

问题描述 现有一项目,需要管理大量的矢量数据.影像数据和专题数据(自定义格式的栅格数据)的2维.3维显示问题,我想打破原有系统架构,应用开源项目重新搭建一个框架.应用Geoserver做数据服务器,基于QGIS开发2维应用,基于WorldWindJava开发3维应用.现在不知道GeoServer在管理海量数据发布时速度如何?另外,在WWJ上开发自己的应用是否可行? 解决方案 解决方案二:Geoserver是一个功能齐全,遵循OGC开放标准的开源WFS-T和WMS服务器.利用Geoserver可以

Oracle中如何预估表压缩的效果

在使用压缩之前,我们可以估算一下使用压缩能够拥有多大的效果. 11gr2以前可以使用dbms_comp_advisor,具体代码已经在附件中给出.只需要执行两个文件dbmscomp.sql和prvtcomp.plb,然后使用DBMS_COMP_ADVISOR.getratio存储过程即可.不再详细描述. SQL> set serveroutput on SQL> execdbms_comp_advisor.getratio('SH','SALES',10) Sampling table: SH

Oracle压缩功能介绍

大家听到这个词,一定就想到了节省硬盘空间吧.没错,它就是用来干这个的,但是向外延伸一下,它不仅可以节省硬盘空间,更可以节省带宽以及内存的使用(cpu有一点点损耗因为需要更多的计算取值操作,但是鉴于大多数环境下cpu都有空闲,所以也可以忽略了). Basiccompression这个功能从9i开始就有提供,11gr1开始提供了新的压缩功能,即OLTP compression.Basic compression是包括在EE版本中的,不需要额外收费,但是OLTP compression则需要额外的Or