IBMDB29.7,内联CLOB和VARCHAR之间有什么区别吗?

IBMDB29.7,内联CLOB和VARCHAR之间有什么区别吗?,db2,varchar,clob,Db2,Varchar,Clob,使用IBMDB29.7,在32k表空间中,假设一个10000b(一万字节)长的列非常适合一个表PCE。这两者之间有区别吗?一个比另一个好吗 VARCHAR(10000) CLOB(536870912) INLINE LENGTH 10000 就功能和性能而言,是首选还是首选?快速看一下这两个,CLOB实际上更通用;所有短于10000的内容都存储在stablespace中,但如果需要更大的内容,也可以,它只存储在磁盘的其他位置。有: 特殊限制适用于产生CLOB数据的表达式 类型和到结构化类型列;

使用IBMDB29.7,在32k表空间中,假设一个10000b(一万字节)长的列非常适合一个表PCE。这两者之间有区别吗?一个比另一个好吗

VARCHAR(10000)
CLOB(536870912) INLINE LENGTH 10000
就功能和性能而言,是首选还是首选?快速看一下这两个,CLOB实际上更通用;所有短于10000的内容都存储在stablespace中,但如果需要更大的内容,也可以,它只存储在磁盘的其他位置。

有:

特殊限制适用于产生CLOB数据的表达式 类型和到结构化类型列;这样的表达式和列是 在以下情况下不允许:

  • 前面有DISTINCT子句的SELECT列表
  • GROUP BY子句ORDER BY子句集合运算符other的子选择 比所有人都好
  • 谓语基本的、量化的、介于之间的或在内部的谓语
  • 聚合函数
  • VARGRAPHIC、TRANSLATE和datetime标量函数
  • LIKE谓词中的模式操作数,或搜索 POSSTR函数中的字符串操作数
  • 字符串的字符串表示形式 日期时间值
因此,如果您需要执行这些操作,最好使用
VARCHAR

关于性能,我没有一个明确的答案(不幸的是,文档中似乎没有这样的信息——或者至少不容易找到)。然而,从逻辑上讲,DB与
CLOB
有更多的工作要做。它必须决定是否直接在结果中返回
CLOB
。这至少意味着一些开销。这里是,尽管它也没有给出关于性能的明确答案

我的默认位置是使用
VARCHAR
,除非确实需要
CLOB
(列中的数据可能大于
VARCHAR
限制)