java - IBM Db2 Clob 列可存储最大 20MB 的文本

标签 java db2

我们从上游系统收到消息,消息的平均大小为 2-5KB,但在某些情况下消息可能大至 20 MB。我们需要将消息存储在表中以用于审计目的。数据库是IBM DB2 9.7,列类型是CLOB。我有几个问题:

  • 在 DB2 中,CLOB 列的默认大小为 1MB,是否可以将列的大小增加到 20MB。
  • 数据库是根据实际数据大小还是列大小分配空间,那么假设消息大小为 5KB,将为行分配多少空间?
  • 是否有其他更好的方法将此类数据存储在 db2 关系数据库中,以便消息大小不受限制。我们只想使用关系数据库。

谢谢

最佳答案

LOB 将使用比原始“消息”更多的空间,但 5KB 消息所需的存储空间比 20MB 消息少得多。

查看 LOB 内联以了解此类情况。 使用内联将允许将小型 lob 与数据一起存储(从而提高 IO 性能),超过一定大小的数据将存储在 lobspace 中。

这可以通过在表的列定义中添加 INLINE LENGTH 来实现。达到此值的 LOB 将与数据一起存储,更大的 LOB 自动存储在 LOBSPACE 中。 此功能的性能体验非常好。

另请参阅最佳实践信息 https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W7c1e3103820b_4d9e_add6_b5ade3280dcb/page/Inline+LOBs+%28Large+Objects%29

关于java - IBM Db2 Clob 列可存储最大 20MB 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35642345/

相关文章:

java - 为什么java.lang.Object中的clone()方法受到保护?

java - 我无法在代码中实例化 Integer 类的对象 (Java)

sql - 在DB2中拆分VARCHAR以检索内部的值

DB2 比较具有非常大的数字的数据

Java 对具有重复元素的集合进行排序。如果重复,按出现顺序排序

java - java中的分割单词并处理双引号

java - 如何找到 "Plug-in Project"向导的源代码?

database - 尝试在 CentOS 8 上安装 DB2 连接器以请求 IBMi (AS400)

sql - 如何在 AIX 上的 DB2 中删除多个列?

java - sql where 条件中的修剪值