Oracle Advanced Compression 详解
Oracle Advanced Compression 详解
适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Advanced Compression 高级压缩[1]:
详细见:Oracle 表压缩技术。
2. 类型
2.1 表压缩
- COMPRESS BASIC
- COMPRESS FOR OLTP
- COMPRESS FOR QUERY
- COMPRESS FOR ARCHIVE
2.2 索引压缩
- COMPRESS
- Advanced Index Compression
2.3 网络压缩
- SQL*Net
- 数据传输
2.4 备份压缩
- RMAN
- Data Pump
2.5 LOB 压缩
- SecureFiles
- COMPRESS
3. 表压缩
3.1 Basic
CREATE TABLE emp COMPRESS BASIC;
ALTER TABLE emp COMPRESS BASIC;
ALTER TABLE emp MOVE COMPRESS BASIC;
3.2 OLTP
CREATE TABLE emp COMPRESS FOR OLTP;
ALTER TABLE emp COMPRESS FOR OLTP;
ALTER TABLE emp MOVE COMPRESS FOR OLTP;
3.3 Warehouse
CREATE TABLE sales COMPRESS FOR QUERY;
CREATE TABLE sales COMPRESS FOR QUERY HIGH;
3.4 Archive
CREATE TABLE sales_archive COMPRESS FOR ARCHIVE;
CREATE TABLE sales_archive COMPRESS FOR ARCHIVE HIGH;
4. 压缩级别
4.1 Basic
- 直接路径加载
- 压缩比 2-4x
- 无 DML 压缩
4.2 OLTP
- 所有操作
- 压缩比 2-4x
- OLTP 适合
4.3 Query
- 仓库
- 压缩比 3-5x
- 查询
4.4 Archive
- 归档
- 压缩比 10-20x
- 历史数据
5. 索引压缩
5.1 基本
CREATE INDEX idx_emp ON emp (name, dept) COMPRESS 1;
5.2 Advanced
CREATE INDEX idx_emp ON emp (name, dept)
COMPRESS ADVANCED LOW;
5.3 优势
- 空间节省
- Buffer Cache
- I/O 减少
6. RMAN 压缩
6.1 配置
CONFIGURE COMPRESSION ALGORITHM 'HIGH';
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';
CONFIGURE COMPRESSION ALGORITHM 'LOW';
6.2 备份
BACKUP AS COMPRESSED BACKUPSET DATABASE;
6.3 优势
- 空间节省
- 网络
- 恢复
7. Data Pump 压缩
7.1 导出
expdp ... COMPRESSION=ALL
expdp ... COMPRESSION=DATA_ONLY
expdp ... COMPRESSION=METADATA_ONLY
7.2 优势
- 文件小
- 传输快
- 存储
8. 网络压缩
8.1 配置
# sqlnet.ora
SQLNET.COMPRESSION = ON
SQLNET.COMPRESSION_LEVELS = LOW/HIGH
8.2 优势
- 网络流量
- 远程
- 性能
9. 性能
9.1 CPU
- 压缩 CPU
- I/O 减少
- 平衡
9.2 内存
- Buffer Cache
- 压缩块
- 更多数据
9.3 I/O
- 减少
- 性能
10. 监控
10.1 压缩比
SELECT table_name, compression, compress_for
FROM user_tables
WHERE compression = 'ENABLED';
SELECT segment_name, bytes/1024/1024 AS mb
FROM user_segments;
10.2 性能
SELECT name, value FROM v$sysstat
WHERE name LIKE '%compress%';
11. 应用场景
11.1 OLTP
- OLTP 压缩
- DML
- 节省
11.2 仓库
- Query 压缩
- 大表
- 性能
11.3 归档
- Archive 压缩
- 历史
- 节省
12. 常见问题
12.1 CPU 高
- 压缩开销
- 评估
- 监控
12.2 DML 慢
- OLTP 压缩
- 监控
- 调整
12.3 压缩比低
- 数据类型
- 评估
- 优化
13. 最佳实践
- OLTP:FOR OLTP
- 仓库:FOR QUERY
- 归档:FOR ARCHIVE
- 监控:CPU
- 测试:性能
- 索引:Advanced
- 备份:RMAN
- 网络:压缩
- 文档:配置
- 演练:定期
14. 参考资料
[1] Oracle Advanced Compression Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/adcomp/