ivicaa Asked: 2019-05-30 04:47:28 +0800 CST2019-05-30 04:47:28 +0800 CST 2019-05-30 04:47:28 +0800 CST 是否可以在 DB2 10.5 中压缩 CLOB 列 772 我有一张桌子CLOB(1M)。如果我compression yes adaptive在表上启用压缩 (),则不会压缩 CLOB。有没有办法在 DB2 10.5 中完成这项工作? db2 compression 2 个回答 Voted Best Answer mustaccio 2019-05-30T04:58:49+08:002019-05-30T04:58:49+08:00 历史上,LOB 数据存储在与普通行数据分开的数据结构中,这些数据结构没有被压缩。使用 Db2 for LUW 9.7 和更高版本,您可以选择存储部分 LOB 列,但受行长度限制,与数据行内联。内联 LOB 数据将与它们所属的行一起被压缩。 CREATE TABLE foo ( lob_col CLOB (1M) INLINE LENGTH 2000 ) 仅当您的大部分 LOB 值都在行内长度限制范围内时,这才有用。另请注意,内联存储 LOB 可能会影响查询性能(页面上的行数减少,因此可能会增加 I/O 需求)和日志记录开销(始终记录内联 LOB)。 Mark Barinstein 2019-05-31T22:34:46+08:002019-05-31T22:34:46+08:00 从理论上讲 - 是的,这是可能的。您可以相对容易地创建几个外部 UDF(已经有标准的 Java 类)用于压缩/解压缩(CLOB<>BLOB)。 解压功能可以用在基表的视图中。 压缩功能 - 在instead of insert/update此视图的触发器中。除了某些特殊情况(例如,实用程序无法将数据加载到视图中), 您的应用程序可能会透明地使用这样的视图而不是基表。load
历史上,LOB 数据存储在与普通行数据分开的数据结构中,这些数据结构没有被压缩。使用 Db2 for LUW 9.7 和更高版本,您可以选择存储部分 LOB 列,但受行长度限制,与数据行内联。内联 LOB 数据将与它们所属的行一起被压缩。
仅当您的大部分 LOB 值都在行内长度限制范围内时,这才有用。另请注意,内联存储 LOB 可能会影响查询性能(页面上的行数减少,因此可能会增加 I/O 需求)和日志记录开销(始终记录内联 LOB)。
从理论上讲 - 是的,这是可能的。您可以相对容易地创建几个外部 UDF(已经有标准的 Java 类)用于压缩/解压缩(CLOB<>BLOB)。
解压功能可以用在基表的视图中。
压缩功能 - 在
instead of insert/update
此视图的触发器中。除了某些特殊情况(例如,实用程序无法将数据加载到视图中),您的应用程序可能会透明地使用这样的视图而不是基表。
load