1

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

问题:

我们估计大小为 4000 万。CLOBs 大小为 19.5KB 到 ~780GB。我们是如何获得 450GB 以上的?我猜它与CHUNK大小有关 - 19.5KB 将使用 3 CHUNKs,因此大小为 24KB,仍然只有 960GB。LOB索引大约是 2GB。有人有想法吗?(抱歉解释不佳)(运行 ORACLE 11g 的 PS)

先感谢您!

4

1 回答 1

1

您的评论是正确的:“当数据库字符集为多字节时,CLOB 列中的数据以与 UCS-2 兼容的格式存储,例如 UTF8 或 AL32UTF8”。虽然我不会说这只是 VARCHAR2 的外推。UTF8 是一个可变宽度字符集,并不总是需要 2 个字节。

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

于 2013-08-05T19:13:15.717 回答