CLOB存储Oracle 11g

时间:2013-08-02 13:56:09

标签: oracle oracle11g clob database-administration lob

我遇到了一个非常奇怪的Oracle LOB行为。 情况:我们已对包含CLOB列的IOT进行了分区。 CLOB已设置单独的LOB存储设置LOGGING RETENTIONDISABLE IN ROW STORAGE选项。 CHUNK大小为8192bytes。 PCTFREE设置为默认值(dba_tables中为null)。 现在,我们需要创建一个加载了一定量CLOB的测试用例。我们选择了19.5KB CLOB。加载此CLOB 4000万次(用于执行测试,与内容无关) - 文件系统和dba_data_files中的大小为1230GB。

问题:

我们估计大小为40mil。 CLOB的大小为19.5KB到~780GB。我们如何获得450GB以上?我猜它与CHUNK大小有关 - 19.5KB会使用3 CHUNK s,因此大小为24KB,仍然只有960GB。 LOB索引大约为2GB。 有没有人有想法?(对不起解释很抱歉)(P.S。运行ORACLE 11g)

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您的评论是正确的:"Data in CLOB columns is stored in a format that is compatible with UCS-2 when the database character set is multibyte, such as UTF8 or AL32UTF8"。 虽然我不会说这只是VARCHAR2的推断。 UTF8是一个变宽的字符集,并不总是需要2个字节。

15760个字符是31520个字节,只能容纳4个块,32768个字节。 32768 * 40000000/1024/1024/1024 = 1220GB。哪个不完美 匹配你的结果,但非常接近。我们需要看一些更详细的数字来寻找完美的匹配。