获得 Production Mapping 许可后可用。
通过使用批量加载操作的表压缩,可在使用诸如直接加载或“选择时创建表”(CTAS) 等操作执行批量加载时压缩数据。压缩可用于常规数据处理操作,例如 INSERT、UPDATE 和 DELETE。压缩可用于各种类型的工作量,例如在线事务处理 (OLTP) 或数据仓库。您的写入性能不会下降,但读取性能或查询会有所提高。这是因为与必须等待数据解压完成的桌面压缩技术不同,Oracle 技术可以直接读取压缩数据(所需提取更少),并且不需要进行任何解压操作。
压缩技术在应用程序间完全透明。这表示可以在所有应用程序中使用此技术。
使用表压缩时要求 Oracle 数据库与 11.1 或更高版本兼容。以下是压缩关键字的语法。
COMPRESS [FOR {ALL | DIRECT_LOAD} OPERATIONS]
默认为 FOR DIRECT_LOAD;它引用之前版本中的批量加载操作。FOR ALL OPERATIONS 适用于 OLTP 和直接加载。
以下是压缩关键字的示例。
--Enable compression for new tables:
CREATE TABLE t1 COMPRESS FOR ALL OPERATIONS;
--Enable compression on existing table:
ALTER TABLE t2 COMPRESS FOR ALL OPERATIONS;
--Does not trigger compression on existing rows
要使用新的压缩算法,必须使用 COMPRESS FOR ALL OPERATIONS 子句来标记您的表。可在创建表时进行此操作,也可在创建之后进行。如果在使用 COMPRESS 子句时未指定任何 FOR 选项,或者使用 COMPRESS FOR DIRECT_LOAD OPERATIONS 子句,则将使用较早版本中提供的旧压缩机制。
还可以在分区或表空间级别上启用压缩。例如,可以使用 CREATE TABLESPACE 命令的 DEFAULT 存储子句有选择地指定 COMPRESS FOR 子句。
Compression and TDE
如果正在使用 TDE 表空间加密,则可获得全部压缩功能(标准压缩、高级压缩以及 Exadata 混合列式压缩 [EHCC]),因为压缩在数据块加密之前就已应用。使用 TDE 列加密只能获得针对未加密表列的所有压缩功能。通过 TDE 列加密进行加密的各个表列所获得的压缩级别要低得多,因为加密在高级压缩进程之前就已在 SQL 图层中发生。
有关详细信息,请参阅透明数据加密 (TDE) 常见问题。