oracle表压缩比,oracle的compress 特性介绍

oracle从9i r2开始推出了compress table的功能,compress table能提供良好的压缩性能,十分适用于存储历史数据。的打算

compress table需要通过创建table时指定compress子句

SQL 9I>create table testcom3(a number) compress;

Table created.

需要通过批量导入数据才能实现compress

1.alter table move

2.create table as select   --compress是可以的,从compressed表是无法ctas为nocompress

3.insert /*+ APPEND */

4.direct path sqlldr

下面来看一些例子

SQL 9I>create table test(a varchar2(10),b number);

Table created.

begin

for i in 1..1000 loop

insert into test values(to_char(mod(i,9)),i);

commit;

end loop;

end;

/

PL/SQL procedure successfully completed.

SQL 9I>create table testcom1 compress as select * from test order by a;

Table created.

SQL 9I>set serveroutput on

SQL 9I>exec show_space('TEST');

Unformatted Blocks .....................              32

FS1 Blocks (0-25)  .....................               0

FS2 Blocks (25-50) .....................               0

FS3 Blocks (50-75) .....................               1

FS4 Blocks (75-100).....................              26

Full Blocks        .....................               1

Total Blocks............................             128

Total Bytes.............................       1,048,576

Total MBytes............................               1

Unused Blocks...........................              64

Unused Bytes............................         524,288

Last Used Ext FileId....................              11

Last Used Ext BlockId...................             904

Last Used Block.........................             64

PL/SQL procedure successfully completed.

SQL 9I>exec show_space('TESTCOM1');

Unformatted Blocks .....................               0

FS1 Blocks (0-25)  .....................               0

FS2 Blocks (25-50) .....................               0

FS3 Blocks (50-75) .....................               0

FS4 Blocks (75-100).....................               0

Full Blocks        .....................               2

Total Blocks............................             128

Total Bytes.............................       1,048,576

Total MBytes............................               1

Unused Blocks...........................             122

Unused Bytes............................         999,424

Last Used Ext FileId....................              11

Last Used Ext BlockId...................           1,032

Last Used Block.........................               6

PL/SQL procedure successfully completed.

可以看到compress table提供了良好的压缩比

另外创建compress table的时候还需要注意的是order by子句的功能

create table test2(a varchar2(10),b varchar2(10),c varchar2(10));

begin

for i in  1000000000..1000100000 loop

insert into test2 values(i,'1',to_char(mod(i,100)));

commit;

end loop;

end;

/

create table testcom4 compress as select * from test2 order by c;

create table testcom5 compress as select * from test2;

SQL 9I>exec show_space('TEST2');

Unformatted Blocks .....................               0

FS1 Blocks (0-25)  .....................               0

FS2 Blocks (25-50) .....................               0

FS3 Blocks (50-75) .....................               0

FS4 Blocks (75-100).....................              24

Full Blocks        .....................             288

Total Blocks............................             384

Total Bytes.............................       3,145,728

Total MBytes............................               3

Unused Blocks...........................              64

Unused Bytes............................         524,288

Last Used Ext FileId....................              13

Last Used Ext BlockId...................           1,032

Last Used Block.........................              64

PL/SQL procedure successfully completed.

SQL 9I>exec show_space('TESTCOM4');

Unformatted Blocks .....................               0

FS1 Blocks (0-25)  .....................               0

FS2 Blocks (25-50) .....................               0

FS3 Blocks (50-75) .....................               0

FS4 Blocks (75-100).....................               0

Full Blocks        .....................             226

Total Blocks............................             256

Total Bytes.............................       2,097,152

Total MBytes............................               2

Unused Blocks...........................              24

Unused Bytes............................         196,608

Last Used Ext FileId....................              12

Last Used Ext BlockId...................           1,160

Last Used Block.........................             104

PL/SQL procedure successfully completed.

SQL 9I>exec show_space('TESTCOM5');

Unformatted Blocks .....................               0

FS1 Blocks (0-25)  .....................               0

FS2 Blocks (25-50) .....................               0

FS3 Blocks (50-75) .....................               0

FS4 Blocks (75-100).....................               0

Full Blocks        .....................             259

Total Blocks............................             384

Total Bytes.............................       3,145,728

Total MBytes............................               3

Unused Blocks...........................             117

Unused Bytes............................         958,464

Last Used Ext FileId....................              13

Last Used Ext BlockId...................           1,160

Last Used Block.........................              11

PL/SQL procedure successfully completed.

可见order by子句对compress影响也是比较大,我们应该指定重复值多并且长度大的列做order by以获得最大的压缩比。

有人会对compress的读写性能表示担忧,但是实际上无论是全表扫描还是通过索引回表扫描压缩表的性能都不会比非压缩表差。至于dml,压缩表应该是不推荐进行dml的,但是当你通过非bulk操作inert 数据时那么这些数据将会不会进行压缩存储,也就是按照普通格式操作,所以效率并不会低,但是还是要避免对压缩表进行dml操作,尤其是update,update将会导致行迁移,从而使压缩表的容量比非压缩表还要大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何快速开发 Serverless Devs Package ?

简介:目前,开发者开发 Serverless Package 的流程相对来说是比较简单的。因为在 Serverless Devs 开发者工具中,已经提供了相对完整的脚手架能力,一文了解详情~ 作者 | 江昱(阿里云 Serverless 产品经理) …

首发苹果 M2!MacBook Pro 正式开售,更像是一个增强版的 A15?

作者 | Ryan Smith 译者 | 弯月出品 | CSDN虽然一年一度的WWDC主要是一个软件发布会,但也总是时不时地给出一些硬件惊喜,今年也不例外。在WWDC22上,苹果公布了用于Mac(和iPad)平台的第二代苹果系统芯片——M2。这个…

什么是oracle命名,ORACLE数据库命名规范

ORACLE数据库命名规范1 目的规范数据库各种对象的命名规则。2 数据库命名原则2.1 数据文件如果数据库采用文件系统,而不是裸设备,约定下列命名规则:1)数据文件以表空间名为开始,以.dbf为结尾,全部采用小写英文字母加数…

Datastream 开发打包问题

简介:Datastream作业开发时往往会遇到一些jar包冲突等问题,本文主要讲解作业开发时需要引入哪些依赖以及哪些需要被打包进作业的jar中,从而避免不必要的依赖被打入了作业jar中以及可能产生的依赖冲突。 Datastream作业开发时往往会遇到一些j…

专题实战 | 如何快速构建高质量电商行业搜索?

简介:本文详细介绍如何快速接入智能开放搜索(OpenSearch)电商行业增强版,助力企业实现高质量搜索效果,提升业务转化率及用户产品体验! 电商搜索特点 1. 关键词堆砌 例如:明星同款夏季连衣裙包…

Linux 网络性能的 15 个优化建议!

作者 | 张彦飞allen来源 | 开发内功修炼那么具备了对网络的深刻的理解之后,我们在性能方面有哪些优化手段可用呢?我这里给出一些开发或者运维中的性能优化建议。这些建议都是从书中摘录的。不过要注意的是,每一种性能优化方法都有它适用或者不…

oracle inventory directory,oraInventory目录的作用

oraInventory目录的作用2019-03-14What is oraInventory ?oraInventory is repository (directory) which store/records oracle software products & their oracle_homes location on a machine. This Inventory now a days in XML format and called as XML Inventory w…

Flink Sort-Shuffle 实现简介

简介:Sort-Shuffle 使 Flink 在应对大规模批数据处理任务时更加游刃有余 本文介绍 Sort-Shuffle 如何帮助 Flink 在应对大规模批数据处理任务时更加游刃有余。主要内容包括: 数据 Shuffle 简介引入 Sort-Shuffle 的意义Flink Sort-Shuffle 实现测试结果调…

php类同时调用两个参数,如何让一个类选择器同时调用两个class值_html/css_WEB-ITnose...

姓名性别年龄名族张峰男19汉族李惠女18回族请教一下为什么表格th部分没有变色,只是td部分变了,如何让一个类选择器同时调用两个class值回复讨论(解决方案)如何让类选择器的th部分也发挥作用.fancy th{ color:#f60;background:#666;}.fancy td{ color:#f6…

「现代C++设计魅力」虚函数继承-thunk技术初探

简介:工作中使用LLDB调试器调试这一段C多继承程序的时候,发现通过lldb print(expression命令的别名) 命令获取的指针地址和实际理解的C的内存模型的地址不一样。那么到底是什么原因呢? 作者 | 扬阜 来源 | 阿里技术公众号 一 问题背景 1 实…

万物互联时代到来,锐捷发布场景化无线零漫游方案

数字化和万物互联时代到来,物联网与 IoT 设备发展迅猛,以往只在办公区域主要由手机等移动设备使用的无线网络,正在接入更多核心业务生产、物流仓储等各类的生产设备。据分析机构 IDC 预测,无线网络优先是当下智能园区网络建设投资…

阿里云田涛涛:高效智能的云,CloudOps让运维更简单

简介:CloudOps:以应用为中心的自动化运维新趋势 12月21日,在阿里云弹性计算年度峰会上,阿里云弹性计算体验与控制系统负责人田涛涛发表了主题为《高效智能的云,CloudOps让运维更简单》的演讲,深度解读了云上运维新趋势…

linux怎么修改目录的所有者,linux修改文件或目录的所有者(chown)和用户组

chown更改文件或目录的所有者注意:所有者,必须存在于(/etc/passwd)下。比如:linux修改文件或目录的所有者(chown)和用户组更改文件或目录的所有者命令:1、新建测试文件test,命令为“touch test”2、查看文件的属性,命令…

打造南沙“强芯”,南沙首届IC Nansha大会召开

6月25日,2022 中国南沙国际集成电路产业论坛在广州南沙召开。本次峰会由广州南沙经济技术开发区管理委员会、广州市工业和信息化局主办;支持单位为广州湾区半导体产业集团有限公司、广东省集成电路行业协会、广州市半导体协会;广东省半导体及…

OpenAI开发者大会简介

文章目录 GPT-4 Turbo 昨天晚上 OpenAI的首届开发者大会召开 Sam Altman也做了公开演讲,应该说 这是继今年春天发布GPT-4之后 OpenAI在AI行业又创造的一个不眠夜 过去一年 ChatGPT绝对是整个科技领域最热的词汇 OpenAI 也依靠ChatGPT取得了惊人的成绩 ChatG…

【实用教程】在配备持久内存的实例上部署Redis应用

简介:配备持久内存的实例(例如re7p、r7p、re6p)提供了超大CPU内存配比,Redis应用运行在这类实例上可以大幅度降低单GiB内存的成本。本文以部分操作系统为例,介绍如何在这类实例上快速部署Redis应用。 配备持久内存的实…

阿里云贾少天:大规模云服务器高效使用及管理实践

简介:本篇内容分享了大规模云服务器高效使用及管理最佳实践。 2021年10月22日,在云栖大会的《云上运维最佳实践》分论坛,阿里云高级技术专家贾少天发表了主题为“大规模云服务器高效使用及管理最佳实践”的演讲,本篇内容根据他的…

linux烧录文件的格式,制作emmc 烧录文件

量产需要统一使用烧录器烧录, 需要制作统一的 emmc 烧录文件,主要升级步骤如下:工具: ISP tool; winhex ; checksum , mboottnize ; U盘(大于主板 EMMC 大小,mmc大小可以使用mmc size查看)文件: USB 升级文件 MstarUpgrade.bin, mboot.bin, r…

发现新视界——视觉计算将如何改变生产方式

简介:本篇内容将从3个部分为读者介绍关于视觉计算如何改变生产方式,进一步阐述可视化业务方面的挑战及阿里云视觉计算的解决方案与优势。 编者按:在2021年10月举办的云栖大会的《数字孪生&Cloud XR技术助力产研创新论坛》上,…

容器监控指南:三剑客轻松实现 Docker 容器监控

作者 | Milan Mahat在本指南中,我们将学习如何使用 docker-compose 在容器中设置 cAdvisor,将其与 prometheus 连接,并通过 grafana 监控服务器的容器。CAdvisor 是一种流行的工具,用于收集容器的信息。它是 prometheus 和 grafan…