首页 游戏 软件 资讯 排行榜 专题
首页
数据库
Oracle如何压缩表数据节省空间_使用BASIC与ADVANCED压缩

Oracle如何压缩表数据节省空间_使用BASIC与ADVANCED压缩

热心网友
80
转载
2026-04-29

Oracle表压缩为什么不是开箱即用

很多朋友初次接触Oracle表压缩时,可能会遇到一个困惑:明明建表时加了COMPRESS关键字,为什么实际存储空间没怎么减少?这里需要澄清一个关键点:Oracle的表压缩功能默认是关闭的,即使你使用了compress关键字,其最终能否生效,还取决于你选择的压缩类型以及具体的数据操作方式。

简单来说,BASIC压缩只在特定的insert /*+ append */(直路插入)操作时才会触发,对于常规的insertupdatedelete,数据块里的行是完全不压缩的——这个特性常常被误认为是“压缩功能失效了”。而更高级的ADVANCED压缩(即OLTP压缩)虽然支持DML操作的实时压缩,但它需要显式地使用compress for oltp语法来启用,并且依赖于相应的数据库许可。

Oracle表压缩默认关闭,BASIC压缩仅在直路插入时生效,ADVANCED压缩需显式启用且依赖许可,验证须查实际存储而非仅表定义。

BASIC压缩只对批量插入有效

一个常见的误解发生在使用CREATE TABLE t1 COMPRESS AS SELECT ...这样的语句时。你以为表建好数据就压缩了?其实不然。这条语句只是让新表继承了COMPRESS这个属性,真正的压缩动作,要等到数据写入的那一刻才会发生。如果你后续使用普通的INSERT INTO t1 VALUES (...)一条条插入数据,那么这些数据块里存放的,依然是未经压缩的原始行。

那么,BASIC压缩究竟在什么场景下工作呢?

  • 批量直路插入:使用INSERT /*+ APPEND */ INTO t1 SELECT * FROM t2时,会触发BASIC压缩。其原理是在数据块内部,对重复的列值进行字典编码,从而实现压缩。
  • 表重组:通过ALTER TABLE t1 MOVE COMPRESS可以对现有表进行重组并压缩,但需要注意,这个操作会锁表,并产生大量的redo日志。
  • 限制:BASIC压缩不支持索引组织表(IOT)、外部表以及临时表。
  • 验证效果:压缩后,SELECT COUNT(*)查询的行数不会变化,但通过DBA_SEGMENTS.BYTESDBA_TABLES.BLOCKS视图,可以观察到实际占用的存储空间和块数有明显下降。

ADVANCED压缩需要显式启用且有许可限制

如果你需要一种对DML操作更友好的压缩方式,那么ADVANCED压缩(从Oracle 11gR2起称为COMPRESS FOR OLTP)是更好的选择。它能在INSERT、UPDATE、DELETE过程中自动维护压缩状态。但是,它必须被明确指定,不能简单地用COMPRESS来代替。

这里有个许可相关的问题需要厘清:ADVANCED压缩底层采用了混合列式压缩(HCC)的逻辑变体,但它本身并不强制要求Exadata环境。真正强制绑定Exadata或Oracle Database In-Memory选项授权的,是COMPRESS FOR QUERY LOW/HIGH这类更高级的HCC压缩类型。

启用和使用ADVANCED压缩时,有几个细节值得关注:

  • 启用方式:建表时使用CREATE TABLE t1 COMPRESS FOR OLTP,或对已有表使用ALTER TABLE t1 COMPRESS FOR OLTP
  • 清理机制:执行UPDATE或DELETE后,数据块中可能会产生少量未压缩的行(称为“行碎片”)。这些碎片由后台进程SMON定期进行清理(clean up),清理进度可以通过V$SESSION_LONGOPS视图观察。
  • 索引影响:表压缩本身不影响索引的结构。不过,如果压缩表上的索引键值存在重复的前缀,索引的branch块可能会因为更紧凑的存储而间接受益。
  • 日志影响:开启压缩后,表的LOGGING属性依然有效,因此归档日志的量并不会因为数据被压缩而减少。

怎么验证压缩是否真起作用

如何确认压缩确实在为你节省空间?千万别只看DBA_TABLES.COMPRESSION字段显示为ENABLED就高枕无忧。这个字段仅仅表示表定义中带有压缩属性,并不能真实反映数据在磁盘上的存储状态。要了解真相,必须深入到数据块和段空间的使用情况。

下面提供几种验证方法:

  • 查看压缩类型SELECT COMPRESSION, COMPRESS_FOR FROM DBA_TABLES WHERE TABLE_NAME = 'T1'
  • 估算真实压缩率:先执行ANALYZE TABLE t1 COMPUTE STATISTICS收集统计信息,然后检查DBA_TABLES.A VG_ROW_LEN(平均行长),与根据表结构预估的原始行长度进行对比。
  • 块级深度验证:这需要更专业的操作。首先结合V$BHDBA_OBJECTS视图找到表的对象ID和对应的缓存块,然后利用DBMS_ROWID包抽样获取具体行所在的块号。最准确的方法是使用DBMS_COMPRESSION.GET_COMPRESSION_RATIO过程进行分析,但这通常需要提供数据块的dump文件。
  • 最直接的对比法:如果条件允许,可以做一个简单的测试:先执行ALTER TABLE t1 MOVE NOCOMPRESS取消压缩,再执行ALTER TABLE t1 MOVE COMPRESS FOR OLTP重新启用压缩,然后分别查询DBA_SEGMENTS.BYTES,对比前后两次的字节数变化。

最后必须强调,压缩并非万能灵药。在高并发的UPDATE场景下,ADVANCED压缩可能会带来额外的CPU开销;而BASIC压缩则几乎完全牺牲了对日常DML操作的友好性。因此,在生产环境选型前,务必在测试库中用真实的业务负载进行压测,充分评估其对I/O和CPU资源的具体影响。

来源:https://www.php.cn/faq/2320715.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Oracle如何压缩表数据节省空间_使用BASIC与ADVANCED压缩
数据库
Oracle如何压缩表数据节省空间_使用BASIC与ADVANCED压缩

Oracle表压缩为什么不是开箱即用 很多朋友初次接触Oracle表压缩时,可能会遇到一个困惑:明明建表时加了COMPRESS关键字,为什么实际存储空间没怎么减少?这里需要澄清一个关键点:Oracle的表压缩功能默认是关闭的,即使你使用了compress关键字,其最终能否生效,还取决于你选择的压缩类

热心网友
04.29
OpenClaw智能体爆火,引爆ASIC千亿市场新机遇
科技数码
OpenClaw智能体爆火,引爆ASIC千亿市场新机遇

当AI Agent从技术概念走向规模化应用,一场由云端算力需求驱动的产业变革正在加速上演。OpenClaw等智能体框架的爆发式增长,正推动云服务提供商(CSP)资本开支进入新一轮扩张周期,而成本压力

热心网友
03.29
助你活到千岁的芯片:科技如何重塑人类寿命极限
科技数码
助你活到千岁的芯片:科技如何重塑人类寿命极限

文|半导体产业纵横2026年3月,国家药监局正式批准了博睿康医疗科技自主研发的植入式脑机接口手部运动功能代偿系统创新产品注册申请。作为全球首款获批上市的侵入式脑机接口医疗器械,这一事件将脑机接口技术

热心网友
03.28
Taalas公司“邪修”AI芯片如何炼成?聚焦AGI技术
科技数码
Taalas公司“邪修”AI芯片如何炼成?聚焦AGI技术

图片来自Taalas正式打着“颠覆英伟达”的旗号的公司,总是会接二连三涌现。最近,一家来自加拿大多伦多的芯片“小厂”Taalas引起了AI圈关注。有声音认为,它很可能撬动英伟达主宰了多年的AI芯片市

热心网友
02.24
英伟达独占遇阻:博通联发科挑战AI芯片霸主
科技数码
英伟达独占遇阻:博通联发科挑战AI芯片霸主

财联社2月4日讯(编辑 马兰)随着人工智能热潮的继续推进,英伟达很可能失去如今的主导地位,因为越来越多的大型数据中心运营商为降低成本,正在采购定制芯片(ASIC),这将让英伟达的通用型芯片“跌落云端

热心网友
02.04

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

比特币现货持有者坚定持仓 BTC价格逼近115000美元关键阻力位
web3.0
比特币现货持有者坚定持仓 BTC价格逼近115000美元关键阻力位

现货持有者坚守仓位,比特币接近115,000水平 近期比特币(BTC)价格接近$115,000水平,市场整体情绪谨慎,但现货持有者依旧坚守仓位,显示出一定的多头信心。 市场现状与资金流动 那么,当前市场的资金究竟在如何流动?分析显示,一个有趣的现象正在上演:短线资金的流入其实相当有限,市场热度并未急

热心网友
05.23
瑞波币XRP现最强看涨形态目标6美元 近期回调后走势深度解析
web3.0
瑞波币XRP现最强看涨形态目标6美元 近期回调后走势深度解析

目录 要点介绍:分析师称XRP呈现“最强看涨结构”高位清算集中于2 90美元以上区域 周四,XRP价格稳稳站在了2 80美元上方。这个位置守住了,意味着什么?意味着市场向那个经典的“杯柄形态”目标价——6美元以上——又迈进了一步。 要点介绍: 先看几个核心数据:周四XRP报收2 82美元。技术分析显

热心网友
05.23
以太坊衍生品市场企稳 交易员聚焦4500美元关键阻力位突破
web3.0
以太坊衍生品市场企稳 交易员聚焦4500美元关键阻力位突破

近期,以太坊(ETH)衍生品市场经历了短暂的闪崩,但随后价格快速企稳,交易者开始关注关键突破点——$4,500水平。 ETH衍生品市场现状 市场情绪往往在剧烈波动后显露真容。从最新的链上数据和期权、永续合约的交易情况来看,那场短暂的闪崩更像是一次压力测试——结果是,市场波动率显著下降,多空力量似乎进

热心网友
05.23
狗狗币DOGE暴涨11%交易量激增四倍 市场反弹行情能否持续
web3.0
狗狗币DOGE暴涨11%交易量激增四倍 市场反弹行情能否持续

DOGE单日暴涨11%,交易量激增四倍,市场风向变了? 最近,加密货币市场又热闹起来了。DOGE(狗狗币)上演了一出“旱地拔葱”,价格单日暴涨11%,更关键的是,成交量直接翻了四倍。这种“价量齐升”的场面,无疑给整个迷因币板块打了一针强心剂,市场情绪肉眼可见地回暖了。 DOGE价格拉升原因分析 那么

热心网友
05.23
欧易OKX官方APP下载指南 安全交易入口与安装教程
web3.0
欧易OKX官方APP下载指南 安全交易入口与安装教程

如何安全获取欧易(OKX)官方APP?一份详尽的下载与使用指南 Binance币安 欧易OKX ️ Huobi火币️ 当人们谈论“欧易易欧”时,指的往往是那个全球顶尖的数字资产交易平台——欧易(OKX)。作为业务版图庞大的行业巨头,其官方APP无疑是用户进行交易、查看行情和管理资产的核心工具。不过,

热心网友
05.23